Изучил базу языка программирование Python и решил изучить алгоритмы по книге "Грокаем Алгоритмы" (Адитья Бахаргава). В первой главе был алгоритм бинарного поиска, и я понял в чем он заключается, но не понял как он реализован в коде.
Код:
def binary_search(list, item):
low = 0
high = len(list)-1
while low <= high/2
mid = (low + high)/2
guess = list[mid]
if guess == item:
return mid
if guess > item:
high = maid - 1
else:
low = mid + 1
return Noene
my_list = [1, 3, 5, 7, 9]
print binary_search(my_list, 3) # => 1
------------------------------------------------
Проблема в том что я не понимаю где мы работаем с индексами чисел, а где нет.
Буду очень благодарен тем кто объяснит, что делает list[mid], а еще буду более блягодарен тем, кто оъяснит где мы работаем с индексами, а где нет или даже объяснит весь код!!!
Зарание Спасибо!