二分查找,举一反三
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
my_list = [1,3,5,7,9]
print (binary_search(my_list,3)) # => 1
print (binary_search(my_list,-1)) # => None
二分查找,是对数时间。会比线性时间少很多。
大O表示法