I am having troubles while learning binary search. Here is my code:
a = [1, 2, 4, 6, 7, 8, 11, 13, 23, 26, 28, 32, 36, 402, 2403, 3340, 4400]
def binary_search(list, whattosearch):
start_index = 1
end_index = len(list) - 1
while True:
mid_index = (end_index - start_index) // 2
if mid_index < start_index or mid_index > end_index or mid_index < 0:
return False
mid_element = list[mid_index]
if mid_element == whattosearch:
return True
if mid_element < whattosearch:
start_index = mid_index
else:
end_index = mid_index
if __name__ == '__main__':
print(binary_search(a, 8))
I get 'False' as an output. Could someone help me, please?
mid_index = start_index + ((end_index - start_index) // 2)