void HeapAdjust(SqList &L,int s,int m){
ElemType rc=L.r[s];
for (int j=2*s;j<=m;j*=2){
if(j<m&&L.r[j].key<L.r[j+1].key){
j++;
}
if(rc.key>=L.r[j].key){
break;
}
L.r[s]=L.r[j];
s=j;
}
L.r[s]=rc;
}
void CreatHeap(SqList &L){
int n=L.length;
for (int i=n/2;i>0;i--){
HeapAdjust(L,i,n);
}
}
void HeapSort(SqList &L){
CreatHeap(L);
for (int i=L.length;i>1;i--){
ElemType x=L.r[1];
L.r[1]=L.r[i];
L.r[i]=x;
HeapAdjust(L,1,i-1);
}
}
PTA 6-9 堆排序
最新推荐文章于 2023-11-20 16:13:02 发布