堆排序

private static void heapSort(int[] array, int length) {
        int end=length-1;
        while(end>1){
            while(true){
            int p=end/2;
            int tag=0;
            while(p>=0){
                if(array[p]<array[2*p]){
                    int temp=array[p];
                    array[p]=array[2*p];
                    array[2*p]=temp;
                    tag=1;
                }
                if((2*p+1)<=end && array[p]<array[2*p+1]){
                    int temp=array[p];
                    array[p]=array[2*p+1];
                    array[2*p+1]=temp;
                    tag=1;
                }
                p--;
            }
                if (tag==0) break;
            }
            int t=array[0];
            array[0]=array[end];
            array[end]=t;
            end--;
        }
    }

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