Выполняя второе кодовое ката (которое просит вас реализовать алгоритм двоичного поиска пять раз, каждый раз с другим методом), я придумал немного другое решение, которое работает следующим образом:
Если у меня есть отсортированный массив длины 100, и я вижу, что его начальное поле содержит число 200, а его конечное поле содержит число 400, я, как математик, изучающий человека, мог бы начать поиск вокруг поля 35, если бы я искал число 270, а не поле 50, как в обычном алгоритме двоичного поиска.
Затем, если число в поле 35 массива равно 270, 35 - это индекс, который я искал.
Если это не так, я могу сравнить полученное число (скажем, 280) и повторить операцию, взяв нижнюю часть массива (таким образом, у меня есть 35 полей с начальным полем, содержащим 200, и конечным полем, содержащим 280), если число, которое я нашел, больше, чем то, что я ищу, или верхней части массива (скажем, я получил 260: теперь у меня есть 65 индексов, первый из которых содержит 260, а последний - 400. Ориентировочно, я бы направился к вершине индекс 4 этого подмассива, который является индексом 39 всего массива), если число, которое я получил, меньше числа, которое я ищу.
Вопрос: можно ли считать этот алгоритм алгоритмом двоичного поиска? Если нет, есть ли у него свое имя?