使用该算法的前提:
1、有序的元素列表;
2、想要确定一个元素在数组中的位置。
设列表共n个元素,那么,运行时间为O(logn)。
#返回list中item的位置
def binary_search(list, item):
low = 0
high = len(list) - 1
while(low <= high):
mid = int((low + high) / 2)
guess = list[mid]
if(guess == item):
return mid
if(guess >item):
high = mid - 1
else:
low = mid + 1
return None
list = [45, 85, 99, 102, 456, 45798]
binary_search(list, 456)