Изменения

Перейти к: навигация, поиск
м
Псевдокод
s += '#'
int alpha_size = 255
//''На нулевом этапе сортируем подстроки длинной длиной 1''
'''vector''' count(max(alpha_size, s.length()))
//''count -- массив для сортировки подсчетом''
'''fill'''(count, 0)
'''for''' ('''int''' i = 0; i < s.length(); ++i)
++count[ord(s[i])]
'''calc_positions'''(count)
'''vector''' suffs(s.length())
'''for''' ('''int''' i = 0; i < s.length(); ++i)
suffs[count[ord(s[i])]++] = i
//''подстроки длинной длиной 1 отсортированы''
//''разобьем их на классы эквивалентности''
'''vector'''<'''int'''> classes(s.length())
36
правок

Навигация