python的二分查找

为大家介绍一下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<numbers[mid]:
        hi=mid							#如果search>中间值就把mid赋给head
    else:		
        ans = mid
        print("%s在数组中的索引为%s"%(key, ans))
        break
else:
    print("要查找的数不在该序列中")

猜你喜欢

转载自blog.csdn.net/zan1763921822/article/details/86636523