Вот Википедия Запись
Если вы посмотрите на простой итеративный подход. Вы просто удаляете половину элементов для поиска, пока не найдете нужный элемент.
Вот объяснение того, как мы придумали формулу.
Скажем, сначала у вас есть N элементов, а затем вы делаете
⌊N / 2⌋ в качестве первой попытки. Где N - сумма нижней границы и верхней границы. Первое значение времени N будет равно (L + H), где L - первый индекс (0), а H - последний индекс в списке, который вы ищете. Если вам повезет, элемент, который вы попытаетесь найти, будет посередине [например, Вы ищете 18 в списке {16, 17, 18, 19, 20}, затем вычисляете ⌊ (0 + 4) / 2⌋ = 2, где 0 - нижняя граница (L - индекс первого элемента массива) и 4 - верхняя граница (H - индекс последнего элемента массива). В приведенном выше случае L = 0 и H = 4. Теперь 2 - это индекс найденного элемента 18, который вы ищете. Бинго! Вы нашли это.
Если бы дело было другим массивом {15,16,17,18,19}, но вы все еще искали 18, то вам бы не повезло, и вы бы сначала делали N / 2 (то есть ⌊ (0+ 4) / 2⌋ = 2 и затем понимаем, что элемент 17 в индексе 2 - это не число, которое вы ищете. Теперь вы знаете, что вам не нужно искать по крайней мере половину массива при следующей попытке выполнить итеративный поиск манера. Ваши усилия по поиску уменьшены вдвое. Таким образом, в основном вы не ищите половину списка элементов, которые вы искали ранее, каждый раз, когда вы пытаетесь найти элемент, который вы не смогли найти в предыдущей попытке.
Так что наихудший случай будет
[N] / 2 + [(N / 2)] / 2 + [((N / 2) / 2)] / 2 .....
т.е.:
N / 2 1 + N / 2 2 + N / 2 3 + ..... + N / 2 x … ..
до тех пор, пока ... вы не закончили поиск, где элемент, который вы пытаетесь найти, находится в конце списка.
Это показывает, что наихудший случай - это когда вы достигаете N / 2 x , где x таково, что 2 x = N
В других случаях N / 2 x , где x такой, что 2 x
Теперь, поскольку математически наихудший случай, когда значение
2 x = N
=> log 2 (2 x ) = log 2 (N)
=> x * log 2 (2) = log 2 (N)
=> x * 1 = log 2 (N)
=> Более формально ⌊log 2 (N) + 1⌋