Префикс-функция — различия между версиями
Vasin (обсуждение | вклад) (→Алгоритм) |
Vasin (обсуждение | вклад) |
||
Строка 33: | Строка 33: | ||
==Время работы== | ==Время работы== | ||
− | Всего <tex>O(n^2)</tex> | + | Всего <tex>O(n^2)</tex> итераций цикла, на каждой из который происходит сравнение строк за <tex>O(n)</tex>, что дает в итоге <tex>O(n^3)</tex>. |
+ | |||
+ | == Литература == | ||
+ | Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296. |
Версия 20:28, 28 марта 2012
Префикс-функция строки
— функция .Содержание
Алгоритм
Наивный алгоритм вычисляет префикс функцию непосредственно по определению, сравнивая префиксы и суффиксы строк.
Пример
Рассмотрим строку abcabcd, для которой значение префикс-функции равно
.Шаг | Строка | Значение функции |
---|---|---|
a | 0 | |
ab | 0 | |
abc | 0 | |
abca | 1 | |
abcab | 2 | |
abcabc | 3 | |
abcabcd | 0 |
Псевдокод
Prefix_function () for to for to if return
Время работы
Всего
итераций цикла, на каждой из который происходит сравнение строк за , что дает в итоге .Литература
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296.