package com.link.sort;
import java.util.Random;
/**
* @Author sunzy
* @DATE Create in 2019/9/17 18:17
*/
public class BaseSort {
private static void baseSort(int[] arr) {
int[] order = new int[10];
int n=1;
int d=getMaxD(arr);
int [][] backet=new int[10][arr.length];
while(n<d){
for(int i=0;i<arr.length;i++){
int digit=(arr[i]/n)%10;
backet[digit][order[digit]]=arr[i];
order[digit]++;
}
int j = 0;
for(int i=0;i<order.length;i++){
while(order[i]>0){
for(int m=0;m<order[i];m++){
arr[j]=backet[i][m];
j++;
}
order[i]=0;
}
}
n=n*10;
}
}
private static int getMaxD(int[] arr) {
return 10000;
}
private static void printarr(int[] arr) {
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
System.out.print(",");
}
System.out.println("");
}
public static void main(String[] args) {
Random random = new Random();
int []arr = new int[20];
for(int i=0;i<20;i++){
arr[i]=random.nextInt(5000);
}
printarr(arr);
baseSort(arr);
printarr(arr);
}
}
运行结果:
1427,4988,3294,4342,1443,2343,624,4824,2771,3270,332,44,2300,2094,4702,3816,4611,1098,2907,811,
44,332,624,811,1098,1427,1443,2094,2300,2343,2771,2907,3270,3294,3816,4342,4611,4702,4824,4988,
1166

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



