基数排序(Radix Sort)属于分配式排序算法的一种,它是将待排序序列的元素切分为许多个部分作为排序键,对序列的每一趟排序都会更换不同的键(由低位到高位或是由高位到低位)进行计数排序。这种排序思想要求每一趟排序都是稳定的,即相同键值的相对位置不会发生改变,而计数排序可以满足这个要求。
低位优先
低位优先(Least Significant Digital,LSD)的基数排序主要应用于元素都是定长的序列——电话号码、银行卡号、身份证号、IP地址等。假设字符串的长度为W,LSD基数排序的执行过程就是从右向左以每个位置的字符作为键,用计数排序将字符串排序W遍。示例如下:
初始序列(W=3) | d=2 | d=1 |
---|