package radix;
import java.util.Arrays;
public class Test1 {
public static void main(String[] args) {
String[] numbers={"2","1","3"};
int[] bucket=null;
String[] R=null;
for (int j = 10; j >0 ; j--) {
bucket=new int[10];
for (int i = 0; i <numbers.length ; i++) {
String c= numbers[i].charAt(j)+"";
bucket[Integer.parseInt(c)]++;
}
for (int i = 1; i <bucket.length ; i++) {
bucket[i]+=bucket[i-1];
}
//新建一个数组存储新的元素
R=new String[numbers.length];
for (int i = numbers.length-1; i >=0 ; i--) {
String c= numbers[i].charAt(j)+"";
R[--(bucket[Integer.parseInt(c)])]=numbers[i];
}
System.out.println(Arrays.toString(bucket));
System.out.println("第"+(j+1)+"次"+Arrays.toString(R));
numbers=R;
}
System.out.println(Arrays.toString(R));
}
}
基数排序必须是稳定的排序。