Где на практике используется бинарный поиск?

Двоичный поиск можно использовать algorithms для быстрого доступа к упорядоченным algorithm-design данным при нехватке памяти. Предположим, вы algorithm хотите сохранить набор из binary-search 100 000 32-битных целых чисел algorithm-design в упорядоченной структуре algorithm данных с возможностью поиска, но algorithms вы не собираетесь часто менять algorithm набор. Вы можете тривиально algorithms хранить целые числа в отсортированном algorithms массиве размером 400 000 algorithm байт, и вы можете использовать algorithms двоичный поиск для быстрого algorithm доступа к нему. Но если вы algorithms поместите их, например, в algorithm-design B-дерево, RB-дерево или любую algorithm-design «более динамичную» структуру algorithm данных вы начинаете нести binary-search накладные расходы на память. Чтобы binary-search проиллюстрировать, сохранение algorithms целых чисел в любом виде algorithms дерева, где у вас есть левый algorithm дочерний и правый дочерние algorithm-design указатели, потребует не менее algorithms 1 200 000 байт памяти (при algorithms условии 32-битной архитектуры algorithm-design памяти). Конечно, вы можете algorithms провести оптимизацию, но algorithm в целом это работает именно algorithms так.

Поскольку обновлять упорядоченный algorithms массив (вставляя или удаляя) очень binary-search медленно, двоичный поиск algorithm бесполезен, если массив часто binary-search изменяется.

Вот несколько algorithm-design практических примеров использования binary-search бинарного поиска:

  • Реализация конструкции switch() ... case: на виртуальной машине, где метки case являются отдельными целыми числами. Если у вас 100 наблюдений, вы можете найти правильную запись за 6-7 шагов с помощью бинарного поиска, где в качестве последовательности условных переходов требуется в среднем 50 сравнений.
  • Выполнение быстрого поиска подстроки с использованием массивов суффиксов, которые содержат все суффиксы набора доступных для поиска строк в лексиографическом порядке (я хотел сохранить память и упростить реализацию)
  • Нахождение численных решений уравнения (когда вы ленивы и не против реализовать метод Ньютона)

algorithm

binary-search

2022-11-10T01:06:53+00:00
Вопросы с похожей тематикой, как у вопроса:

Где на практике используется бинарный поиск?