бинарный поиск python
не могу понять формула max кол-ва шагов БП log2(n) почему у меня при n = 8 происходит 4 итерации например при поиске числа "7" в массиве a = [0,1,2,3,4,5,6,7]
def binary_search(arg,list):
list.sort()
low = 0
high = len(list) - 1
while True:
if (arg > list[high]) or (arg < list[low]):
print("такого значения нет")
break
mid = int((low + high)/2)
guess = list[mid]
print('high', high, 'low', low, 'mid', mid, 'guess', guess, 'arg', arg)
if arg < guess:
high = mid - 1
elif arg > guess:
low = mid + 1
elif (arg == guess):
print(mid)
break