На хабре уже был подобный вопрос, но у меня не получается все равно вывести ту цифру, которую ввожу. Всегда выходит None. Бинарный поиск работает когда список отсортирован, так сказано в книге Почему у меня все равно None?
my_list = [2,4,5,8,9,6]
sl = sorted(my_list)
def binary_search(list, item):
low = 0
hight = len(list)-1
while low <= hight:
mid = (low + hight)//2
guess = list[mid]
if guess == item:
return mid
elif guess > item:
hight = mid -1
else:
low = mid + 1
return None
print(binary_search(sl, 2))
$ python test.py
None