Я думал о проблеме линейной сортировки по времени, которая появляется в довольно многих источниках, что позволяет сортировать массив чисел в диапазоне от 0
до n^3-1
в линейном времени ,Radix sort в линейном времени по сравнению с преобразованием ввода в нужную базу
Так один из способов сделать это состоит в использовании базисного вида, который обычно проходит в O(wn)
где w
это максимальный размере слова, заметив, что мы можем получить размер слова 3
для любого числа в этом диапазоне, используя базу n
.
И в этом мой вопрос - пока он выглядит нормально на бумаге, на практике конвертируя все числа в базу n
, наивный путь займет довольно много времени, возможно, даже больше, чем более поздняя сортировка. Есть ли способ конвертировать в базу n
быстрее, чем наивно или как-то обмануть выход из этого ограничения или вам просто нужно жить с ним?