Быстрый поиск, если слово существует в текстовом файле словаря - PullRequest
3 голосов
/ 09 февраля 2011

У меня большой текстовый файл (~ 10 МБ), в котором содержится более или менее каждый словарь на определенном языке, а каждое слово - это новая строка с разделителями.

Я хочу сделать очень быстрый поиск, чтобы увидеть, существует ли слово в файле - Какой самый быстрый способ сделать это без циклического прохождения каждой строки?

Это отсортировано, и я могу выполнить всю необходимую предварительную обработку.

Я подумал о том, чтобы выполнить какой-то бинарный поиск, но я не знал, как мне это сделать, поскольку все мои строки не имеют фиксированного числа байтов (и, следовательно, я не знаю, куда перейти к потоку). И что удивительно, я не смог найти инструмент, который бы сделал для меня вещь фиксированной ширины.

Есть предложения? Спасибо!

Ответы [ 2 ]

6 голосов
/ 09 февраля 2011

Я бы предложил построить Trie из словаря. Это дает вам очень быстрый поиск, чтобы увидеть, есть ли там слово.

1 голос
/ 09 февраля 2011

Trie - хорошая ставка, если вы не возражаете использовать больше памяти: http://en.wikipedia.org/wiki/Trie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...