Изменения

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

Суффиксный бор

670 байт добавлено, 15:15, 17 апреля 2012
Нет описания правки
* Можно построить за время <tex>O(n^2)</tex>, последовательно добавив все суффиксы <tex>s</tex>.
* Имеет порядка <tex>n^2</tex> вершин.
 
== Реализация ==
<tex>int </tex> <tex>[length ^ 2][alphabet] </tex> <tex> table</tex>
<tex>int </tex> <tex> number = 1 </tex>
'''<tex>\text{Add}(int </tex> <tex> i, j)</tex>'''
<tex> int </tex> <tex> current = 0 </tex>
<tex>for</tex> (<tex>char </tex> <tex> c \in s[i, j])</tex>
<tex> if (table[current][c] \neq -1) </tex> //проверка есть ли ребро с текущим символом
<tex> table[current][c] = number </tex>
<tex> number++; </tex>
<tex> current = table[current][c]</tex>
'''<tex>\text{Build}</tex> <tex>(String </tex> <tex> s)</tex>
добавляем все суффиксы.
==Хранение в памяти==
228
правок

Навигация