Изменения

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

Алгоритм цифровой сортировки суффиксов циклической строки

Нет изменений в размере, 06:58, 14 октября 2011
Решение
Рассматриваемый алгоритм состоит из примерно <tex>\log n</tex> фаз. На <tex>k</tex>‐той фазе (<tex>k=0..\lceil\log n\rceil </tex>) сортируются циклические подстроки длины <tex>2^k</tex>. На последней, <tex>\lceil\log n\rceil</tex>-ой фазе, будут сортироваться подстроки длины <tex>2^{\lceil\log n\rceil} \ge n</tex>, что эквивалентно сортировке циклических сдвигов.
На каждой фазе алгоритм помимо перестановки <tex>p[0..n-1]</tex> индексов циклических подстрок будет поддерживать для каждой циклической подстроки, начинающейся в позиции длиной <tex>i2^k</tex> с длиной и начинающейся в позиции <tex>2^ki</tex>, номер класса эквивалентности <tex>c[i]</tex>, которому эта подстрока принадлежит. В самом деле, среди подстрок могут быть одинаковые, и алгоритму понадобится информация об этом. Кроме того, номера классов эквивалентности <tex>c[i]</tex> будем давать таким образом, чтобы они сохраняли и информацию о порядке: если один суффикс меньше другого, то и номер класса он должен получить меньший.
== Описание алгоритма ==
Анонимный участник

Навигация