我正在尝试在javascript中实现基数排序。但是,我不知道怎么做基数排序!我有这个伪代码(来自算法简介):
RADIX-SORT(A, d)
for i = 1 to d
use a stable sort to sort array A on digit i
然而,当它说A on digit i
时,那是什么意思?
答案 0 :(得分:1)
在基数排序中,元素根据第i个数字排序。它通过查看数字1,然后是2,...到数字d。
开始排序数组A.例如:A = {423,241,732}
迭代1(i = 1):A = {24 1 ,73 2 ,42 3 }
迭代2(i = 2):A = {4 2 3,7 3 2,2 4 1}
迭代3(i = 3):A = { 2 41, 4 23, 7 32} - 分类** < / p>
这需要线性时间来对n个元素的数组进行排序(取决于内部使用的稳定排序)。这在O(n + d)时间内进行排序,其中d是元素中的位数。
我们可以使用任何稳定的排序(计算排序或任何其他)来对元素进行排序。