div id="myTime">

二分查找

通过二分法判断一个元素是否在列表内,如果用循环遍历的方法去写的话,如果用文件过大,运算时间会很长

二分查找. 每次能够排除掉一半的数据. 查找的效率非常高. 但是局限性比较大. 必须是有序序列才可以进行二分法查找

解题思路,找到列表中最开始的索引以及最后一位数的索引,然后求中间值,用需要判断的值对比中间值,如果大于中间值,就在

中间值+1索引位置找到最后一个,如果小于中间值.就在第一个索引位置到中间索引-1的位置.循环这种查找方法

a = int(input("请输入一个数值:"))
lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963]
left = 0
right = len(lst)-1
while left <= right:
  mid = (left + right) // 2
  if a < lst[mid]:
    right = mid - 1
  elif a > lst[mid]:
    left = mid + 1
else:
  print("找到了")
break

posted @ 2018-11-05 19:13  lowen107  阅读(133)  评论(0编辑  收藏  举报