用最快速度将0*10范围内的数进行排序

 @Test
    public void test() {
        int[] array = {9,0,1, 2, 5, 8, 1, 5, 1, 4, 6, 5, 4, 5, 4, 1, 5, 10};
        System.out.println(Arrays.toString(countSort(array)));
    }

    static int[] countSort(int[] array) {
//1.得到数列的最大值
        int max = array[0];
        int min = array[0];
        for (int i = 1; i < array.length; i++) {
            if(array[i]>max){
                max=array[i];
            }
        }
        //2.根据数列最大值确定统计数组的长度
        int[] countArray=new int[max+1];
        for (int i = 0; i < array.length; i++) {
            countArray[array[i]]++;
        }
        int index=0;
        int[] sortArray=new int[array.length];
        for (int i = 0; i < countArray.length; i++) {
            for (int j = 0; j < countArray[i]; j++) {
                sortArray[index++]=i;
            }
        }
        return sortArray;
    }
原文地址:https://www.cnblogs.com/dongma/p/10087422.html