Джон Скит уже ответил на вопрос.
Здесь я покажу, как мы можем решить это математически.
Поскольку в каждом цикле мы делим диапазон пополам, в худшем случае нам потребуется steps
итераций максимум.
Как мы вычисляем steps
число?
«Половина диапазона» может быть выражена как: диапазон / 2 шагов
Мы можем продолжать делить пополам до тех пор, пока range
не станет 1 .
Таким образом, уравнение: диапазон / 2 шагов = 1
Решение:
lg (диапазон / 2 шагов ) = lg (1)
lg (диапазон) - шаги * lg (2) = 0
шагов = lg (диапазон) , где lg - логарифм с основанием 2.