基数排序(桶排序)
package Sort;
import java.util.Arrays;
public class BaseSort {
public static void main(String[] args) {
int[] arr=Number.getArr(10);
System.out.println(Arrays.toString(arr));
sort(arr);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr) {
int[][] temp=new int[10][arr.length];
int[] bucketCount=new int[10];
int index=0;
int max=arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i]>max) {
max=arr[i];
}
}
for (int k = 0,n=1; k < String.valueOf(max).length(); k++,n*=10) {
for (int i = 0; i < arr.length; i++) {
int e=arr[i]/n%10;
temp[e][bucketCount[e]]=arr[i];
bucketCount[e]++;
}
for (int i = 0; i < bucketCount.length; i++) {
if (bucketCount[i]!=0) {
for (int j = 0; j < bucketCount[i]; j++) {
arr[index++]=temp[i][j];
}
}
bucketCount[i]=0;
}
index=0;
}
}
}