堆排序

作者: 编程小王子AAA | 来源:发表于2020-07-14 19:40 被阅读0次
    //来源于天勤数据结构
    class Solution {
        void sift(int[] R,int low,int high){
            int i=low,j=2*i;
            int temp=R[i];
            while(j<=high){
                if(j<high && R[j]<R[j+1]){
                    ++j;
                }
                if(temp<R[j]){
                    R[i]=R[j];
                    i=j;
                    j=2*i;
                }else{
                    break;
                }
            }
            R[i]=temp;
        }
        void heapSort(int[] R,int n){
            int i;
            int temp;
            for(i=n/2;i>=1;--i){
                sift(R,i,n);
            }
            for(i=n;i>=2;--i){
                temp=R[l];
                R[l]=R[i];
                R[i]=temp;
                sift(R,l,i-1);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:堆排序

          本文链接:https://www.haomeiwen.com/subject/kuofhktx.html