Эта статья включает список общих ссылок , но в ней отсутствуют соответствующие встроенные цитаты . ( Июль 2017 г. ) |
Сорт | Алгоритм сортировки |
---|---|
Структура данных | Трие |
Худший вариант производительности | Собственный ) |
Наихудшая сложность пространства | Собственный ) |
Оптимальный | ? |
Burstsort и его варианты — это кэш-эффективные алгоритмы для сортировки строк . Они являются вариантами традиционной радиксной сортировки , но быстрее для больших наборов данных общих строк, впервые опубликованных в 2003 году, с некоторыми оптимизирующими версиями, опубликованными в более поздние годы. [1]
Алгоритмы пакетной сортировки используют trie для хранения префиксов строк с растущими массивами указателей в качестве конечных узлов, содержащих отсортированные уникальные суффиксы (называемые сегментами ). Некоторые варианты копируют хвосты строк в сегменты. По мере того, как сегменты превышают заданный порог, сегменты «разбиваются» на попытки, что и дало сортировке ее название. Более поздний вариант использует индекс сегмента с меньшими подсекционными сегментами для сокращения использования памяти. Большинство реализаций делегируют многоключевой быстрой сортировке, расширению трехсторонней радикальной быстрой сортировки, для сортировки содержимого сегментов. Разделив входные данные на сегменты с общими префиксами, сортировка может быть выполнена эффективным с точки зрения кэширования способом.
Burstsort была введена как сортировка , похожая на сортировку MSD radix [1], но она быстрее из-за того, что учитывает кэширование и связанные с ним основания, хранящиеся ближе друг к другу из-за специфики структуры trie. Она использует специфику строк, которые обычно встречаются в реальном мире. И хотя асимптотически она такая же, как сортировка radix, со сложностью O ( wn ) ( w – длина слова и n – количество строк для сортировки), но из-за лучшего распределения памяти она имеет тенденцию быть в два раза быстрее на больших наборах данных строк. Она была объявлена «самым быстрым известным алгоритмом для сортировки больших наборов строк». [2]