#include"stdio.h" char ch[]
#include"stdio.h"
char ch[]={'q','A','S','O','R','T','E','X','A','M','P','L','E'};
int n=12;
void shift(intk,intn)
{
char v;
int j;
v=ch[k];j=k+k;
while(j<=n)
{
if((j<n)&&(ch[j]<ch[j+1])) j++;
if(v<ch[j])
{
ch[j/2]=ch[j];j*=2;
}
else
return;
ch[j/2]=v;
}
}
void hpsrt(void)
{
int k;
char tmp;
for(k=n/2;k>0;k--)shift(k,n);/* 建堆 */
printf("No.1:");
for(k=1;k<=n;k++)putchar(ch[k]);
putchar('\n');
for(k=n;k>0;k--)
{
tmp=ch[1];ch[1]=ch[k];ch[k]=tmp;
shift(1,k-1);
}
}
int main()
{
int k;
hpsrt();
printf("No.2:");
for(k=1;k<=n;k++)putchar(ch[k]);
putchar('\n');
}输出: ___________
答案
第1空:No.1:XTORSEAAMPLE
No.2:AAEELMOPRSTX