Префикс-функция — различия между версиями
Vasin (обсуждение | вклад) (→Псевдокод) |
Vasin (обсуждение | вклад) (→Алгоритм) |
||
Строка 4: | Строка 4: | ||
Наивный алгоритм вычисляет префикс функцию непосредственно по определению, сравнивая префиксы и суффиксы строк. | Наивный алгоритм вычисляет префикс функцию непосредственно по определению, сравнивая префиксы и суффиксы строк. | ||
===Пример=== | ===Пример=== | ||
− | Рассмотрим строку abcabcd, для которой префикс-функции равно <tex>[0,0,0,1,2,3,0]</tex>. | + | Рассмотрим строку abcabcd, для которой значение префикс-функции равно <tex>[0,0,0,1,2,3,0]</tex>. |
{| class="wikitable" | {| class="wikitable" | ||
! Шаг || Строка || Значение функции | ! Шаг || Строка || Значение функции | ||
Строка 22: | Строка 22: | ||
| <tex>7</tex> || abcabcd || 0 | | <tex>7</tex> || abcabcd || 0 | ||
|} | |} | ||
+ | |||
==Псевдокод== | ==Псевдокод== | ||
'''Prefix_function''' (<tex>s</tex>) | '''Prefix_function''' (<tex>s</tex>) |
Версия 23:03, 24 марта 2012
Префикс-функция строки
— функция .Содержание
Алгоритм
Наивный алгоритм вычисляет префикс функцию непосредственно по определению, сравнивая префиксы и суффиксы строк.
Пример
Рассмотрим строку abcabcd, для которой значение префикс-функции равно
.Шаг | Строка | Значение функции |
---|---|---|
a | 0 | |
ab | 0 | |
abc | 0 | |
abca | 1 | |
abcab | 2 | |
abcabc | 3 | |
abcabcd | 0 |
Псевдокод
Prefix_function () for to for to if return
Время работы
Всего
итерация цикла, на каждой из который происходит сравнение строк за , что дает в итоге .