二分查找
作者:互联网
假设要在微信中找一个名字以W打头的人,可以从头开始翻页,直到进入以K打头的部分。但你很可能不这样做,而
是从中间开始,因为你知道以K打头的名字在电话簿中间。
二分查找的code demo:
def binary_search(list,item):
low=0
high=len(list)-1
while low<=high:
mid=(low+high)//2
guess=list[mid]
if guess==item:
return mid
if guess>item:
high=mid-1
if guess<item:
low=mid+1
return -1
if __name__=="__main__":
list=[1, 3, 5, 7, 9]
item=10
a=binary_search(list,item)
if a==-1:
print("{}不在该范围".format(item))
else:
print("{} 在list中的第{}个位置".format(item,a+1))
标签:二分,__,binary,list,打头,high,item,查找 来源: https://www.cnblogs.com/goldenwangyi/p/14252868.html