Временная сложность
Лучший: O(1)
Trie — это структура данных для хранения строк с использованием общих префиксов. Каждое ребро представляет собой символ, а путь от корня до узла образует префикс. Поиск выполняется за O(L), где L — длина слова, независимо от количества сохранённых слов.
Как это работает:
1. Каждый узел содержит карту дочерних узлов (символ → узел) и флаг isEnd
2. При вставке слово обходится посимвольно, а новые узлы создаются только при необходимости
3. isEnd обозначает конец настоящего слова, поэтому "ca" может быть путём в дереве, но не отдельным словом
Почему не хеш-таблица:
Хеш-таблица также ищет точный ключ за O(L),
но не может ответить на вопрос «какие слова начинаются с ca?»
без перебора всех ключей. Trie проходит всего 2 узла,
после чего всё поддерево содержит нужные слова.
Временная сложность:
Лучшая: O(1), если первый символ не совпадает
Средняя: O(L) для insert, search и startsWith
Худшая: O(L) — никогда не зависит от количества слов
Пространственная сложность: O(n × L) — главный недостаток структуры. Radix-деревья уменьшают расход памяти, сжимая цепочки узлов с одним потомком.
Применение: автодополнение, проверка орфографии, таблицы IP-маршрутизации (поиск самого длинного совпадающего префикса), клавиатуры T9, словесные игры, автодополнение символов в редакторах
Похожие алгоритмы
Частые вопросы
- Что такое Trie (Префиксное дерево)?
- Trie — это структура данных для хранения строк с использованием общих префиксов. Каждое ребро представляет собой символ, а путь от корня до узла образует префикс. Поиск выполняется за O(L), где L — длина слова, независимо от количества сохранённых слов.
- Какова сложность Trie (Префиксное дерево)?
- Время (среднее): O(L) для insert, search и startsWith · Память: O(n × L)
- Для кого предназначена визуализация Trie (Префиксное дерево)?
- Визуализация Trie (Префиксное дерево) рассчитана на средний уровень в категории «Структуры данных». Полезна для студентов, подготовки к собеседованиям и практического изучения.
- Какие алгоритмы связаны с Trie (Префиксное дерево)?
- В той же категории (Структуры данных) вы можете изучить: Stack, Queue, Linked List. Каждый из них имеет интерактивную визуализацию.