Алгоритм поиска по словарю

Существует некоторый словарь, где все элементы элементы расположены в алфавитном порядке. Есть ли какие-то алгоритмы поиска необходимого элемента, помимо бинарного?

1 ответов


Для ускорения поиска по большому массиву информации обычно применяется индексация этого массива - основные две темы а-индексы и и-индексы - индекс в данном случае - сокращенный набор данных, по которым сначала ведется поиск.

А-индекс когда вы выносите в индекс к примеру каждое 100-е слово (ключевой момент - адрес, то есть вы тупо делите адресное пространство массива на 100) индекс получится примерно таким (001 =>аа, 101=>абрикос, 201=>барабан). И-индекс когда вы выносите в индекс информацию по смыслу - например по первой букве (ну или по первым двум) пишете (а=>0001, б => 0156).

Потом вы проводите бинарный (дихотомический) поиск сначала по индексу, зажимая слово между двумя элементами индекса, а потом уже в этом "зажатом" промежутке в реальном массиве данных и это здорово ускоряет поиск.