def binarSearch(list, value):
i = 0
first = 0
last = len(list) - 1;
middle = int((first + last) / 2)
while value != list[middle]:
if value < list[middle]:
last = middle
middle = int((first + last) / 2)
elif value > list[middle]:
first = middle + 1
middle = int((first + last) / 2)
if i == middle - 1 or i >= 5 and len(list) <= 4:
return -1
i += 1
return value
Это код бинарного поиска, писал сам. Совсем недавно начал его изучать и мне всегда казалось, что в реализации это очень сложный алгоритм, но я написал его достаточно быстро и понял всю суть. И меня волнует, что это казалось так легко. И у меня вопрос: я правильно написал код? Если да, то можно ли его как-то оптимизировать. Но если нет, то что не так?