Изменения

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

Алгоритм Фараха

8 байт добавлено, 17:48, 21 мая 2014
Описание алгоритма
Основная идея алгоритма, заключается в том что мы уменьшаем размер исходной строки. Для этого мы разбиваем символы сходной строки на пару и пронумеровываем их, а из полученных номеров составляем новую строку, которая уже в <tex>2</tex> раза короче.
Мы опишем алгоритм Алгоритм Фарача будет описан в виде пяти выполняемых шагов. Используем в качестве примера строку <tex>s = 121112212221</tex>, определенную на алфавите <tex>\Sigma = \{1, 2\} </tex> (в этом примере <tex>N = 12</tex>).
=== Шаг 1: суффиксное дерево для сжатой строки===
* Строка <tex>s</tex> разбивается на пары подряд идущих символов: <tex> <12> <11> <12> <21> <22> <21> </tex>
*: (если символов нечетное число - последняя пара дополняется специальным символом <tex>\$</tex>)
* Пары сортирутся сортируются поразрядной сортировкой: <tex><11> <12> <12> <21> <21> <22> </tex>.
* Удаляются копии: <tex><11> <12> <21> <22> </tex>.
* Парам даются номера (условно, в массиве они и так есть): <tex>11-(0), 12-(1), 21-(2), 22-(3)</tex>
497
правок

Навигация