我知道基数排序是通过比较数字的位数来实现的。我的问题是,假设我们有不同位数的不同数字,基数排序是否适用?我们可以简单地假设,例如,如果我们比较两个数字,一个有3位数字,另一个有6位数字,那么较小数字的前3位是0。但是实现方式如何呢?我们如何让程序假设如果没有足够的数字,则这些数字为零?谢谢。
9912
999
123
9912
0999
0123
这些数据可以使用常规基数排序进行排序,也可以分为两个独立的组进行排序:
9912
并且
999
123
123
999
前者不变,然后将排序后的组合并(从较短的数字到较长的数字):
123
999
9912
这就是全部。
digit = (number / radix ^ n) % radix