二分查找
前提:序列有序
start middle end
结束条件:
1)找到了,mid就是其位置
2)没找到,start > end
aList=[1,3,5,7,9,11,13,15,17,19]
x=int(input("请输入要查找的整数:"))
start=0
end=len(aList)-1
while start<=end:
mid=(start+end)//2 #除取整
if aList[mid]==x:
break #两种情况:当 start>end ,退出,到if start<=end:
elif x<aList[mid]: #前半段
end=mid-1
else:
start=mid+1
if start<=end:
print("找到了,第%d个数是%d."%(mid+1,x))
else:
print("没找到,整数%d不在列表中。"%x)
注:在计算机中记小数的整数部分更方便,所以mid = (start+end)//2,取整数