基数排序的代码实现
package learn;
import java.util.Arrays;
/**
* 基数排序
*/
public class GSort {
public static void sort(int[] arr){
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
int length=(max+"").length();
int[][] array=new int[10][arr.length];
int[] count =new int[10];
int temp=0;
for(int k=0 , n=1;k<length;k++,n=10*n){
int index=0;
for(int i=0;i<arr.length;i++){
temp=arr[i]/n%10;
array[temp][count[temp]]=arr[i];
count[temp]++;
}
for(int i=0;i<count.length;i++){
if(count[i]!=0){
for(int j=0;j<count[i];j++){
arr[index]=array[i][j];
index++;
}
}
count[i]=0;
}
System.out.println(Arrays.toString(arr));
}
}
public static void main(String[] args) {
int[] arr= {53,3,542,748,14,214};
sort(arr);
System.out.println(Arrays.toString(arr));
}
}