编辑代码

class Main {
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
		System.out.println("Hello world!   - java.jsrun.net ");
        int arr[]= {23,45,23,56,67,78};
        sort(arr,6);
        print(arr);
	}
    public static int bit(int arr[],int len){
        int max = arr[0];
        for(int i = 0 ; i < len ; i++){
            if(arr[i] > max){
                max = arr[i];
            }
        }
        //求出位数
        int d = 1;
        while(true){
            max = max/10;
           if(max > 0){
             d++;
           }else{
               break;
           }
        }
        return d;
    }
    public static void sort(int arr[],int len){
        int d = bit(arr,len);
        
        int count[] = new int[10];
        int o[] = new int[len];
        int rad = 1;
        for(int i = 0 ; i < d ; i++){
            for(int j = 0 ; j < 10; j++){
                count[j] = 0;
            }
            for(int j = 0 ; j < len; j++){
                int k = (arr[j]/rad)%10;
                count[k]++;
            }
            for(int j = 1 ; j < 10 ; j++){
                count[j] += count[j - 1]; 
            }
            for(int j = len - 1; j >= 0; j--){
                int k = (arr[j]/rad)%10;
                o[count[k]-1]= arr[j];
                count[k]--;
            }
            for(int j = 0 ; j < len ; j++){
                arr[j] = o[j];
            }
            rad = rad * 10;
        }
    }
    public static void print(int arr[]){
        for(int i = 0 ; i < arr.length ; i++){
            System.out.print(arr[i] +" ");
        }
        System.out.println("\n");
    }
}