計數排序(java)筆記

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++;
			}
			
		}			
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章