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