Работа Trie отлично подходит для хранения больших (уникальных) текстовых блоков и сохранения высокоскоростного поиска.Некоторое время назад я написал короткую и грязную статью для Pascal Gamer о них: http://www.pascalgamer.com/issue_details.php?i=1, которая, возможно, стоит прочитать.
Основная идея - создать запись (класс, что угодно), которая содержитбуква или символ и все связанные с ним буквы и символы как дети.Эти дочерние элементы хранятся в отсортированном виде, поэтому для поиска следующего узла можно использовать быстрый двоичный поиск.Когда вы дойдете до конца ввода, вы сможете определить, находится ли слово в конце или в правильной позиции.
Приятно, что в Trie вы можете выполнять частичное сопоставление, обратный поиск, пропуск поиска и т.д. без каких-либо проблем.Вниз стороны есть;Вы не можете легко иметь повторяющиеся записи, они занимают больше места в наборах данных SMALLER, и в зависимости от вашей реализации переключение с учетом регистра может быть «интересным».
Используйте концепцию изо дня в день на миллионах записейбез проблем и с высокой скоростью удержания.