用最快速度將0*10範圍內的數進行排序
阿新 • • 發佈:2018-12-08
@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 (inti = 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; }