class soulution(object):
def binary_search(self,array, item):
start = 0
end = len(array) - 1
while start <= end:
mid = (start + end) // 2
if array[mid] == item:
return mid
elif item < array[mid]:
end = mid - 1
else:
start = mid + 1
return -1
s=soulution()
testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42]
print(s.binary_search(testlist, 3))
print(s.binary_search(testlist, 13))
递归版本
def binary_search2(array, item):
if len(array) == 0:
return False
else:
mid = len(array) // 2
if array[mid] == item:
return True
else:
if item < array[mid]:
return binary_search2(array[:mid], item)
else:
return binary_search2(array[mid + 1:], item)
testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42]
print(binary_search2(testlist, 3))
print(binary_search2(testlist, 13))