基本思想
基数排序(Radix Sort)是桶排序的扩展,它的基本思想是:将整数按位数切割成不同的数字,然后按每个位数分别比较。
具体做法是:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
通过基数排序对数组{53, 3, 542, 748, 14, 214, 154, 63, 616},它的示意图如下:

在上图中,首先将所有待比较树脂统一为统一位数长度,接着从最低位开始,依次进行排序。
- 按照个位数进行排序。
- 按照十位数进行排序。
- 按照百位数进行排序。
排序后,数列就变成了一个有序序列。
java版本实现
package sort;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class RadixSort{
private int a[];
public RadixSort(int a[]) {
this.a = a;
}
public void radixSort() {
int n = a.length - 1;
//找到最大值
int max = a[0];
for(int i = 1 ; i < n

基数排序是一种扩展的桶排序算法,通过按位数切割数字并逐位排序来实现整体排序。首先统一数字的位数,然后从低位到高位依次进行排序。文章通过一个示例详细解释了基数排序的过程,并提供了Java版本的实现代码。虽然在关键字长度较小时基数排序表现出O(n)的时间复杂度,但随着关键字长度增加,其时间复杂度退化为O(N*logN)。
293

被折叠的 条评论
为什么被折叠?



