二分查找的前提是,数据的有序性,如果拿到的不是有序的,可以先用sort()函数排序。二分查找的思路很简单,就是把数据取中点分成连段,所以也叫折半查找,相对于顺序查找,从理论上节省时间,提高效率了。来个图演示一下。
先是

假设要查找的数num大于start,又小于mid,那么end=mid-1,start还是不变,这样的话查找范围就缩小了一半。
假设要查找的数num大于mid,又小于end,那么start=mid+1,end还是不变。
下面来用代码实现。
list_01 = [1,2,3,4,5,6,12,14,15,21,23,25,32]
num = int(input(‘请输入您要查找的数:’))
start = 0
end = len(list_01) - 1
while start<=end:
mid = (start+end)//2#向下取整
if list_01[mid] == num:
print(‘找到了’)
break
elif list_01[mid]>num:
end = mid -1
elif list_01[mid]<num:
start = mid + 1
else:
print(‘没找到’)
学习要坚持,今天的努力,是为了美好的明天!