关于基数排序原理的理解

假设有如下数字:
    91, 46, 85, 15, 92, 35, 31, 22
经过基数排序第一次扫描之后, 数字被分配到如下盒子中:
    Bin 0:
    Bin 1: 91, 31
    Bin 2: 92, 22
    Bin 3:
    Bin 4:
    Bin 5: 85, 15, 35
    Bin 6: 46
    Bin 7:
    Bin 8:
    Bin 9:
根据盒子的顺序, 对数字进行第一次排序的结果如下:
    91, 31, 92, 22, 85, 15, 35, 46
然后根据十位上的数值再将上次排序的结果分配到不同的盒子中:
    Bin 0:
    Bin 1: 15
    Bin 2: 22
    Bin 3: 31, 35
    Bin 4: 46
    Bin 5:
    Bin 6:
    Bin 7:
    Bin 8: 85
    Bin 9: 91, 92
最后, 将盒子中的数字取出, 组成一个新的列表, 该列表即为排好序的数字:
    15, 22, 31, 35, 46, 85, 91, 92

如果存在个位数怎么办?存在十位数相同的情况怎么办?

  排序对象第一次的排序结果是按照个位数从小到大排列的,一旦有个位数出现,就算有多个个位数,因为排序对象的处理是从前往后的,那么进入相应的盒子内也是按从小到大排列的;存在十位数相同的情况下,同样的原理,其实在第一次排序后,个位数相同而十位数不同的数已经按照从小到大的顺序排列了,其结果毋庸置疑。

原文地址:https://www.cnblogs.com/feile/p/5374825.html