Суффиксный массив — различия между версиями
(→Литература) |
|||
Строка 18: | Строка 18: | ||
== Применения == | == Применения == | ||
* Позволяет найти все вхождения образца <tex>p</tex> в строку <tex>s</tex> за время <tex>O(|p| + \log(|s|))</tex> | * Позволяет найти все вхождения образца <tex>p</tex> в строку <tex>s</tex> за время <tex>O(|p| + \log(|s|))</tex> | ||
− | * Позволяет вычислить <tex>lcp</tex> (longest common prefix) для всех соседних в лексикографическом порядке суффиксов строки <tex>s</tex> за <tex>O(|s|)</tex>, то есть построить массив <tex>lcp[1 .. |s| - 1]</tex>, где <tex>lcp[i]</tex> - длина наибольшего общего префикса суффиксов <tex>s[suf[i] .. |s|]</tex> и <tex>s[suf[i + 1] .. |s|]</tex>. | + | * Позволяет вычислить <tex>lcp</tex> (longest common prefix) для всех соседних в лексикографическом порядке суффиксов строки <tex>s</tex> за <tex>O(|s|)</tex>, то есть построить массив <tex>lcp[1 .. |s| - 1]</tex>, где <tex>lcp[i]</tex> {{---}} длина наибольшего общего префикса суффиксов <tex>s[suf[i] .. |s|]</tex> и <tex>s[suf[i + 1] .. |s|]</tex>. |
==Литература== | ==Литература== | ||
* Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд. | * Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд. | ||
− | ==См. | + | ==См. также== |
* [[Построение суффиксного массива с помощью стандартных методов сортировки]] | * [[Построение суффиксного массива с помощью стандартных методов сортировки]] | ||
* [[Алгоритм поиска подстроки в строке с помощью суффиксного массива]] | * [[Алгоритм поиска подстроки в строке с помощью суффиксного массива]] |
Версия 00:24, 3 апреля 2012
Определение: |
Суффиксным массивом для строки | называется такая перестановка чисел от до , что — -ый суффикс в лексикографическом порядке.
Суффиксный массив для строки
может быть построен за .Содержание
Пример
1)
2)
3)
4)
5)
6)
7)
Значит суффиксный массив для строки равен
Применения
- Позволяет найти все вхождения образца в строку за время
- Позволяет вычислить (longest common prefix) для всех соседних в лексикографическом порядке суффиксов строки за , то есть построить массив , где — длина наибольшего общего префикса суффиксов и .
Литература
- Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд.