1、原理:
对于数组中所有的元素,利用元素每一位的值进行排序,如十进制元素数组[342,254,87],则先对个位排序,再对十位排序,最后对百位排序。由于十进制每一位范围为0-9,因此按位排序的过程调用计数排序。示意图图下:
2、伪代码:
假设n个d位元素存放在数组A中,其中第一位时低位,第d位时高位。
RadixSort(int* A,ind d)
{
for(int i = 1;i<=d;i++){
调用计数排序实现按位稳定排序
}
}
参考资料: 算法导论8.3节 基数排序
总结:
1、基数排序时间复杂度为O(n),但常数项较大,同时其不是原址排序,因此不快于基于比较的排序算法(如快速排序、堆排序等)。
2、十进制基数位10,二进制基数位2。
3、当元素取值范围较大,但元素个数较少时可以利用基数排序。