基数排序
先把各个数以个位数不同分到不同的队列中
如果一个队列多个元素用链表连起来
第一趟分配
然后进行第一趟收集
应为我们想得到递减
所以我们从个位数高到低收集
然后第二趟分配
根据第一趟得到的结果
以十位数分配
这里注意!
因为第一趟按个位分的,所以个位大的应该先入队,这就能保证
链表的第一个元素经过n次分配后,他的后n个元素肯定大于链表其他元素的后n个
这里的队列6
的68>66,当然第三趟分配后又不一样,这就能保证最后的序列有序
第二趟收集呗
这里最后收集的相当于后两位数的有序排序
第三趟分配
这里十位大的优先入队,能保证996>985(百位相同十位数更大,肯定链表头最大呗)
第三趟收集就排序完毕,一共三位数
对上面步骤总结
注意,按照权重递增
而且设置空队列的个数为每个关键字可能取值的范围
比较的序列中的元素必须初始的长度相同
算法效率分析
稳定性
基数排序应用
多关键字排序