基数排序
第一趟“分配”:按"个位"进行分配
第一趟“收集”:
第二趟“分配”:按"十位"进行分配("个位"越大的越先入队)
第二趟“收集”:
第三趟“分配”:按"百位"进行分配("十位"越大的越先入队)
第三趟“收集”:
总的来看:
算法效率分析
空间复杂度:O(r)
需要r个辅助队列
时间复杂度:O(d(n+r))
一趟分配O(n),一趟收集O(r),总共d趟分配、收集
稳定性:稳定
基数排序的应用
d=3;n=10000;r=31或12、或14
d必须要小,反例:
r较小的反例:
数据元素个数n的例子:
总结:
通常基于链式表的前题:考基数排序的手动排序:不考代码: