Имеется ли в алгоритме C ++ / Boost Lib сортировка по Radix?

Я хочу отсортировать целые числа, и я знаю, что сортировка по основанию должна быть потрясающей. Любая реализация библиотеки для такого рода?

4

Решение

Зависит от того, насколько строго вы определяете радикальная сортировка, так как Boost 1.58.0 включает Spreadsort, который является гибридным алгоритмом сортировки, который эвристически смешивает сортировку по группам и по сравнению.

Для сортировки целых чисел без требования эффективности worst (n) в худшем случае Spreadsort должен вас удовлетворить.

Ради аргумента, вы также можете взглянуть на мою реализацию ЛСД радикс сортировка, что довольно неэффективно с памятью, но иногда быстрее, чем Spreadsort. Вам требуется только ветвь radix_sort, но я связался с веткой speed_test, потому что в ней есть readme.

2

Другие решения

Более актуальный ответ да с 1.58 это делает:

Он имеет что-то, известное как SpreadSort, и «волшебным образом» обнаруживает оптимизированные пути для таких типов, как std::stringили числа с плавающей запятой, которые можно рассматривать как байтовые массивы.

1

По вопросам рекламы [email protected]