Изменения

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

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

498 байт убрано, 21:52, 19 марта 2015
Нет описания правки
== Первая версия алгоритма ==
Рассмотрим сначала метод, который строит дерево за время <tex>O(n^3)</tex>, где <tex>n</tex> — длина исходной строки <tex>s</tex>. В дальнейшем данный алгоритм будет оптимизирован таким образом, что будет достигнута линейная скорость работы.
{{Определение|definition= '''Неявное суффиксное дерево''' строки <tex>S</tex> {{---}} это суффиксное дерево, построенное для строки <tex>S</tex> без добавления защитного символа.}}[[Файл:ExampleUkkonen1.png|400px|thumb|right|Неявное и явное суффиксные деревья для строки <tex>xabxa</tex> (<tex>\$</tex> {{---}} защитный символ).]]
=== Описание ===
Алгоритм делится на <tex>n</tex> фаз. В фазе с номером <tex>j</tex> в дерево добавляются все суффиксы подстроки <tex>s[1..j]</tex>. При добавлении суффикса <tex>s[i..j]</tex> алгоритм сначала находит конец пути из корня, помеченного подстрокой <tex>s[i..j-1]</tex>, затем добавляет к найденной вершине новое ребро с листом <tex>s_{j}</tex>, если этот символ не был добавлен ранее.
275
правок

Навигация