Изменения

Перейти к: навигация, поиск

Алгоритм Укконена

582 байта добавлено, 11:29, 21 апреля 2015
Итоговая оценка времени работы
=== Итоговая оценка времени работы ===
Все суффиксы, которые заканчиваются в листах, благодаря [[#l1|первой лемме]] на каждом шаге мы увеличиваем на текущий символ по умолчанию за В течение работы алгоритма создается не более <tex>O(1n)</tex>листов, нас интересуют только явные продления по правилу 2 и неявные продления по правилу 3. Так так как всего в исходном тексте <tex>O(n)</tex> суффиксов. Листы создаются по правилам продления 2.1 и 2.2, то и явных продлений а внутренние вершины только при использовании правила 2.2, следовательно, внутренних вершин в итоговом дереве будет не может быть суммарно больше чем листов, отсюда, всего вершин в получившемся дереве <tex>O(n)</tex>, т.е. в худшем случаеВсе суффиксы, если все символы которые заканчиваются в тексте разныелистах, будет создано благодаря [[#l1|первой лемме]] на каждом шаге мы увеличиваем на текущий символ по умолчанию за <tex>O(n1)</tex> листов. По Текущая фаза алгоритма идет пока мы явно не продлим все суффиксы или, благодаря [[#l2|второй лемме]], как только мы применили 3 пока не будет использовано правило продления3. При явном продлении суффикса всегда создается новый лист, так сразу завершили текущую фазув котором он заканчивается, следовательноне сложно заметить, алгоритм делает не более что этот суффикс на всех последующих итерация будет продлеваться по правилу 1(за <tex>O(n1)</tex> неявных продлений. Таким образом), в течение тогда на всех <tex>n</tex> итерация итерациях суммарно выполняется не может быть сделано более <tex>O(n)</tex> явных и неявных продлений, следовательно, с использованием то есть в среднем одна итерация будет выполняться за <tex>O(1)</tex>. Таким образом при использовании всех приведенных эвристик, алгоритм Укконена работает за <tex>O(n)</tex>.
== Минусы алгоритма Укконена ==
Анонимный участник

Навигация