Обратите внимание, что нижняя граница для задачи поиска должна быть, по крайней мере, такой же большой, как и проблема поиска записи в отсортированном массиве, при условии, что запись уже существует.Чтобы решить эту новую проблему, представьте релевантную информацию, которая у вас есть, в виде узла в вашем дереве, конкретно, узел - это набор индексов, в которых может лежать ваше значение.Первоначально, ваше значение может соответствовать любому из индексов, поэтому ваш корень будет {0, 1, ...., n}.
Всякий раз, когда вы делаете сравнение, потому что массив отсортирован, есть триВозможные результаты: либо значение, которое вы ищете, больше, чем то, с которым вы его сравнивали, либо оно меньше, чем значение или равно ему, поэтому вы разбили свой возможный набор индексов на три.Ваш алгоритм решает проблему, когда текущий узел представляет одноэлементное множество, а число сравнений соответствует высоте дерева.
Дерево, которое разбивает дерево на n одиночных листьев минимальной высоты, представляет собой журнал порядка (n) и поэтому это нижняя граница для любого алгоритма.