Суффиксный массив


Суффиксный массив — лексикографически отсортированный массив всех суффиксов строки. Эта структура данных была разработана Джином Майерсом и Уди Манбером как более экономная альтернатива суффиксному дереву с точки зрения необходимой памяти. Она часто применяется там, где необходим быстрый поиск подстрок, например в преобразовании Барроуза — Уилера (BWT), а также в качестве структуры данных в поисковом индексе.

Пример

Рассмотрим строку «abracadabra» длиной 11 символов.

a b r a c a d a b r a 1 2 3 4 5 6 7 8 9 10 11

Отсортированный список её суффиксов:

a abra abracadabra acadabra adabra bra bracadabra cadabra dabra ra racadabra

Суффиксный массив этой строки — {11,8,1,4,6,9,2,5,7,10,3}, потому что суффикс «a» начинается с 11-го знака, суффикс «abra» — с 8-го, и так далее, вплоть до последнего суффикса «racadabra», который начинается с третьего символа исходного слова.

Теперь с помощью этого массива можно легко найти все подстроки. Например, если нужно найти подстроку «ab», достаточно найти все суффиксы, которые начинаются на «ab». За счёт сортировки по алфавиту, они находятся рядом друг с другом. Используя бинарный поиск, мы находим 2-й и 3-й суффиксы «abra» и «abracadabra», которым соответствуют 2-й и 3-й элемент суффиксного массива (8 и 1). Это означает, что искомая подстрока «ab» встречается на первом и восьмом символе в исходном слове.

Алгоритмы

  • Алгоритм Касаи построения массива наибольших общих префиксов.

Похожие новости:

Алгоритм Кнута — Морриса — Пратта

Алгоритм Кнута — Морриса — Пратта
Алгоритм Кнута — Морриса — Пратта (КМП-алгоритм) — эффективный алгоритм, осуществляющий поиск подстроки в строке. Время работы алгоритма линейно зависит от объёма входных данных, то есть разработать

Сутэгана

Сутэгана
Сутэгана (яп. 捨て仮名) — в японской письменности — специальная кана, отличающаяся от обычной меньшим размером. Главным образом применяется в ёоне и в сокуоне, разъясняя чтение предыдущего (в ёоне)

Структура (язык Си)

Структура (язык Си)
В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется

Двери из дуба

Двери из дуба
Высокими характеристиками известен всем массив дуба. Это долговечный и прочный материал. Десятки лет будут служить двери, сделанные из него. Солидность во внешнем виде будет даже увеличиваться со
Комментариев пока еще нет. Вы можете стать первым!

Добавить комментарий!

Ваше Имя:
Ваш E-Mail:
Введите два слова, показанных на изображении: *
Популярные статьи
Экологичный выбор: влияние канальных увлажнителей на окружающую среду
Экологичный выбор: влияние канальных увлажнителей на окружающую среду
Канальные увлажнители воздуха, интегрируемые в системы вентиляции и кондиционирования, могут...
Сколько живут клопы
Сколько живут клопы
Домашние клопы, известные своей устойчивостью и способностью выживать в сложных условиях, могут...
Двери балконные
Двери балконные
Помещения должны быть изолированы от внешнего влияния: сквозняков, холодного воздуха, осадков....
Все новости