每次排除一半的无效目标,最终找到目标,前提是该序列必须是一个有序的序列
num=int(input("请输入要查找的数字:"))
开始设置左端点为零序号
右端点为len(a)1
存在条件左端点要小于等于右端点
while left >= right:
!:pass占位符的意思是在一个循环中,如果啥也不写会报错,则加pass符合语法,还能避免这种情况,保证不写代码片段的时候它还能有一个代码的合规性
创建一个变量跟二整除middle =(left+right)//2
如果要查找的目标比中间的元素大,说明查找的范围不在0到中间这个范围内,前端点就不要了,后端点前移,比较的元素移动不比较就是-1
if a[middle]>num:
right= middle-1
如果要查找的目标比中间的元素小,说明查找的范围不在中间到尾端这个范围内,后端点就不要了,比较的元素移动比较就是+1
if a[middle]<num:
left = middle+1