stringtranslate.com

Burstsort

Burstsort и его варианты — это кэш-эффективные алгоритмы для сортировки строк . Они являются вариантами традиционной радиксной сортировки , но быстрее для больших наборов данных общих строк, впервые опубликованных в 2003 году, с некоторыми оптимизирующими версиями, опубликованными в более поздние годы. [1]

Алгоритмы пакетной сортировки используют trie для хранения префиксов строк с растущими массивами указателей в качестве конечных узлов, содержащих отсортированные уникальные суффиксы (называемые сегментами ). Некоторые варианты копируют хвосты строк в сегменты. По мере того, как сегменты превышают заданный порог, сегменты «разбиваются» на попытки, что и дало сортировке ее название. Более поздний вариант использует индекс сегмента с меньшими подсекционными сегментами для сокращения использования памяти. Большинство реализаций делегируют многоключевой быстрой сортировке, расширению трехсторонней радикальной быстрой сортировки, для сортировки содержимого сегментов. Разделив входные данные на сегменты с общими префиксами, сортировка может быть выполнена эффективным с точки зрения кэширования способом.

Burstsort была введена как сортировка , похожая на сортировку MSD radix [1], но она быстрее из-за того, что учитывает кэширование и связанные с ним основания, хранящиеся ближе друг к другу из-за специфики структуры trie. Она использует специфику строк, которые обычно встречаются в реальном мире. И хотя асимптотически она такая же, как сортировка radix, со сложностью O ( wn ) ( w – длина слова и n – количество строк для сортировки), но из-за лучшего распределения памяти она имеет тенденцию быть в два раза быстрее на больших наборах данных строк. Она была объявлена ​​«самым быстрым известным алгоритмом для сортировки больших наборов строк». [2]

Ссылки

  1. ^ ab Sinha, R.; Zobel, J. (2005). "Кэш-ориентированная сортировка больших наборов строк с динамическими попытками" (PDF) . Журнал экспериментальной алгоритмики . 9 : 1.5. CiteSeerX  10.1.1.599.861 . doi :10.1145/1005813.1041517. S2CID  10807318.
  2. ^ «Burstsort: Самый быстрый известный алгоритм сортировки большого набора строк | Hacker News».

Внешние ссылки