为大家介绍一下python的二分查找,我们一起来进步吧!
所谓二分查找也叫折半查找法,具体就是通过一次次的对折来查找数据,比顺序查找提高里效率,但必须是有需序列才可以使用。
numbers = [1,2,3,4,5,6,7,8,9,10,11] #任意创建一个数组
key = int(input("输入需要查找的数:")) #指定头指针和尾指针,尾指针取了数组长度为初值
lo,hi=0,len(numbers)
while hi-lo >= 1: #因为不确定循环此数所以使用while,当tail-head>1的时候,只剩下head所指的的数
mid=int((hi+lo)/2)
if key>numbers[mid]:
lo=mid #如果search>中间值就把mid赋给head
elif key中间值就把mid赋给head
else:
ans = mid
print("%s在数组中的索引为%s"%(key, ans))
break
else:
print("要查找的数不在该序列中")