package test;
public class Sort {
public static void countSort(int[] array) {
//獲取最大值,最小值
int max=array[0],min=array[0];
for (int i = 0; i < array.length; i++) {
if (max<array[i]) {
max=array[i];
}
if (min>array[i]) {
min=array[i];
}
}
//記錄數組(數組的計數)
int[] temp=new int[max-min+1];
for (int i = 0; i < array.length; i++) {
int aa=array[i]-min;
temp[aa]+=1;
}
//根據記錄數組修改原來的數組
int i=0,j=0;
while (i<temp.length) {
if (temp[i]>0) {
array[j]=i+min;
j++;
temp[i]--;
}
else {
i++;
}
}
}
}
計數排序(java)筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.