这题小顶堆的排序过程,例:
#include<stdio.h>
int main(){
int a,b;
scanf("%d%d",&a,&b);
int c[a+1],n=1,m;
for(;n<=a;n++){
scanf("%d",c);
for(m=n;c[m/2]>*c;m/=2){
c[m]=c[m/2];
}
c[m]=*c;
}
for(n=0;n<b;n++){
scanf("%d",&m);
for(;m>1;m/=2){
printf("%d ",c[m]);
}
printf("%d\n",c[1]);
}
}