堆排序

来源:互联网 发布:京东推广联通网络 编辑:程序博客网 时间:2024/06/05 14:55
//堆排序,明天更新void BuildMaxHeap(ElemType A[],int len){    for(int i=len/2;i>0;i--) //调整堆AdjustDown(A,i,len);}void AdjustDown(ElemType A[],int k,int len){A[0]=A[k];for(i=2*k;i<=len;i*=2)//i初值指向左孩子,自上而下的筛选过程{if(i<len&&a[i]<a[i+1]){  i++;     //取key值较大的子节点的下标?}if(A[0]>=A[i]) //已找到插入位置,筛选结束break;else{  A[k]=A[i];   //将A[i]调整到双亲节点上  k=i;         //修改k值,以便继续向下筛选}}A[k]=A[0];        //被筛选的节点放入最终位置}


0 0
原创粉丝点击