Некоторые алгоритмы поиска определённого числа в заданном диапазоне с использованием бинарного поиска:
- Однородный бинарный поиск. 3 Аргумент поиска сравнивается с ключом Ki, где i — золотое сечение интервала. 3 Оно выбирается так, чтобы отношение длины большего отрезка к длине всего интервала равнялось отношению длины меньшего отрезка к длине большего отрезка. 3
- Троичный поиск. 3 Интервал делится на три части вместо двух. 3 Обычно применяется для поиска положения экстремума функции. 3
- Интерполирующий поиск. 3 Предсказывает позицию нужного элемента на основе разницы значений. 3 Эффективен, если элементы распределены достаточно равномерно. 3
- Дробный спуск. 3 Применяется для ускорения двоичного поиска в многомерных массивах данных. 3
Основная последовательность действий алгоритма бинарного поиска: 3
- Сортируем массив данных. 3
- Делим его пополам и находим середину. 3
- Сравниваем срединный элемент с заданным искомым элементом. 3
- Если искомое число больше среднего — продолжаем поиск в правой части массива (если он отсортирован по возрастанию): делим её пополам, повторяя пункт 3. 3
- Если же заданное число меньше — алгоритм продолжит поиск в левой части массива, снова возвращаясь к пункту 3. 3
Для корректной работы бинарного поиска набор данных должен быть отсортирован по возрастанию или убыванию. 1