有人可以向我解释基数排序吗?
Can someone explain to me radix-sort?
我正在尝试在 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
时,那是什么意思?
在基数排序中,元素根据第 i^ 个数字排序。它通过查看数字 1、然后是 2、... 直到数字 d.
开始对数组 A 进行排序
例如:A = {423, 241, 732}
Iteration 1 (i=1): A = {241,732,423}
Iteration 2 (i=2): A = {423,732,241}
Iteration 3 (i=3): A = {241,423,732} --sorted**
这需要线性时间来对 n 个元素的数组进行排序(取决于内部使用的稳定排序)。这会在 O(n+d) 时间内进行排序,其中 d 是元素中的位数。
我们可以使用任何稳定排序(计数排序或任何其他排序)对元素进行排序。
我正在尝试在 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
时,那是什么意思?
在基数排序中,元素根据第 i^ 个数字排序。它通过查看数字 1、然后是 2、... 直到数字 d.
开始对数组 A 进行排序例如:A = {423, 241, 732}
Iteration 1 (i=1): A = {241,732,423}
Iteration 2 (i=2): A = {423,732,241}
Iteration 3 (i=3): A = {241,423,732} --sorted**
这需要线性时间来对 n 个元素的数组进行排序(取决于内部使用的稳定排序)。这会在 O(n+d) 时间内进行排序,其中 d 是元素中的位数。
我们可以使用任何稳定排序(计数排序或任何其他排序)对元素进行排序。