Где на практике используется бинарный поиск?
Двоичный поиск можно использовать 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
Где на практике используется бинарный поиск?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.