Три была первой структурой данных такого типа, обнаруженной.
Дерево суффиксов является улучшением по сравнению с деревом (оно имеет ссылки суффикса, которые позволяют выполнять линейный поиск ошибок, дерево суффиксов обрезает ненужные ветви дерева данных, поэтому оно не требует такого большого пространства).
Массив суффиксов - это урезанная структура данных, основанная на дереве суффиксов (нет ссылок на суффиксы (медленные совпадения ошибок), но сопоставление с образцом происходит очень быстро).
Это не для использования в реальном мире, потому что оно занимает слишком много места.
Дерево суффиксов легче и быстрее, чем дерево, и используется для индексации ДНК или оптимизации некоторых крупных поисковых систем в Интернете.
Массив суффиксов медленнее при поиске по образцу, чем дерево суффиксов, но использует меньше места и используется более широко, чем дерево суффиксов.
В том же семействе структур данных:
Существуют и другие реализации, CST представляет собой реализацию дерева суффиксов, использующего массив суффиксов и некоторые дополнительные структуры данных для получения некоторых возможностей поиска по дереву суффиксов.
FCST идет дальше, он реализует семплированное суффиксное дерево с массивом суффиксов.
DFCST является динамической версией FCST.
Расширение:
Двумя важными факторами являются использование пространства и время выполнения операции. Вы можете подумать, что с современными машинами дня это не актуально, но для индексации ДНК одного человека потребовалось бы 40 гигабайт памяти (с использованием несжатого и неоптимизированного дерева суффиксов). И для построения одного из этих индексов по этому большому количеству данных могут потребоваться дни. Представьте себе, что Google имеет много доступных для поиска данных, им нужен большой индекс для всех веб-данных, и они не меняют его каждый раз, когда кто-то создает веб-страницу. У них есть какая-то форма кеширования для этого. Однако основной индекс, вероятно, является статическим. И каждые две недели или около того они собирают все новые веб-сайты и данные и создают новый индекс, заменяя старый, когда новый закончен. Я не знаю, какой алгоритм они используют для индексации, но это, вероятно, массив суффиксов со свойствами дерева суффиксов над многораздельной базой данных.
CST использует 8 гигабайт, однако скорость операций с деревом суффиксов сильно снижена.
Суффиксный массив может делать то же самое в диапазоне от 700 мегабайт до 2 гига. Однако вы не найдете генетических ошибок в ДНК с массивом суффиксов (это означает, что поиск шаблона с подстановочным знаком намного медленнее).
FCST (полностью сжатое дерево суффиксов) может создать дерево суффиксов за 800-1,5 гига. С довольно небольшим ухудшением скорости к CST.
DFCST использует на 20% больше места, чем FCST, и теряет скорость при статической реализации FCST (однако динамический индекс очень важен).
Существует не так много жизнеспособных (с точки зрения пространства) реализаций дерева суффиксов, потому что очень трудно заставить увеличение скорости операций компенсировать стоимость пространства ОЗУ структур данных.
При этом у дерева суффиксов есть очень интересные результаты поиска для сопоставления с образцом с ошибками. Эхо-карасика не такая быстрая (хотя почти такая же быстрая для некоторых операций, а не для поиска ошибок), и Бойер Мур остался в пыли.