二分查找
通过二分法判断一个元素是否在列表内,如果用循环遍历的方法去写的话,如果用文件过大,运算时间会很长
二分查找. 每次能够排除掉一半的数据. 查找的效率非常高. 但是局限性比较大. 必须是有序序列才可以进行二分法查找
解题思路,找到列表中最开始的索引以及最后一位数的索引,然后求中间值,用需要判断的值对比中间值,如果大于中间值,就在
中间值+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