Суффиксный массив почти всегда предпочтителен, кроме:
- Если вы собираетесь индексировать небольшие количества данных.
- Если вы проводите исследования на предмет совпадения белков или мутаций ДНК и имеете доступ к чрезвычайно дорогим компьютерам.
- Если вам нужно любой ценой использовать поиск ошибок с подстановочными знаками.
Для реализации дерева суффиксов можно использовать массив суффиксов. Значение суффиксного дерева может быть массивом суффиксов и несколькими дополнительными структурами данных для имитации функциональности дерева суффиксов.
Таким образом:
- Суффиксные массивы занимают меньше места (намного меньше)
- Суффиксные деревья строятся медленнее
- Суффиксные деревья быстрее выполняют операции сопоставления с образцом
- Деревья суффиксов могут выполнять больше операций, лучше всего сопоставлять шаблоны ошибок с подстановочными знаками (массив суффиксов также выполняет сопоставление с образцами, но не с подстановочными знаками)
Если вы хотите проиндексировать много данных, например, более 50 мегабайт. Дерево суффиксов занимает столько места, что на вашем компьютере недостаточно оперативной памяти, чтобы хранить его в центральной памяти. Поэтому он начинает использовать вторичную память, и вы увидите огромное снижение скорости. (например, человеческая днк использует 700 мегабайт, дерево суффиксов этих данных «может» использовать 40 гигабайт -> * «может» в зависимости от реализации *)
Из-за этого дерево суффиксов практически никогда не используется на практике. На практике используется массив суффиксов, а небольшие дополнительные структуры данных дают ему дополнительную функциональность (никогда не полное дерево суффиксов).
Однако они разные. Во многих случаях для сопоставления с образцом предпочтителен массив с суффиксами из-за эффективной скорости, высокой скорости построения и малого использования пространства.