計數排序-java

public class 計數排序 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int []A = {1,5,3,6,4,2,9,8,7,0,5,8,5,5};
        int []B = new int[14];
        COUNYING_SORT(A,B,9);
        for(int i:B){
            System.out.println(i);
        }

    }
    public static void COUNYING_SORT(int []A,int []B,int k){//k爲A中最大元素
        int []C = new int[k+1];
        for(int i = 0; i<=k;i++){
            C[i] = 0;
        }
        for(int j = 0;j < A.length;j++){//統計A中某個數值的個數
            C[A[j]] = C[A[j]] + 1;
        }
        for(int i = 1;i<=k;i++){//統計當前元素之前所有元素個數
            C[i] = C[i] + C[i-1];
        }
        for(int j = A.length-1;j>=0;j--){
            B[C[A[j]]-1] = A[j];
            C[A[j]] = C[A[j]] - 1;
        }
        
    }

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