#include <stdio.h>
#define MAX100FILE*fp;voidjiaohuan(int *a, int *b){
int temp;
temp =*b;*b =*a;*a = temp;}voidjiandui(int SHUZU[MAX], int x){for(int i = x; i >0; i--){if(SHUZU[i /2]>SHUZU[i]){jiaohuan(&SHUZU[i /2],&SHUZU[i]);if((i)<=(x /2)&&((double)i /2)>(i /2)){
i =2* i +1;
i++;}elseif((i)<=(x /2)&&((double)i /2)==(i /2)){
i =2* i;
i++;}}}}voidduipaixu(int SHUZU[MAX], int x){while(SHUZU[1]!='\0'){fprintf(fp,"%d",SHUZU[1]);for(int i =1; i <MAX; i++){SHUZU[i]=SHUZU[i +1];if(SHUZU[i]=='\0')break;}
x = x -1;jiandui(SHUZU, x);}}
int main(void){
fp =fopen("duipaixu.txt","w");
int H[MAX];
int m;printf("请输入数组元素(输入‘#’结束输入):");H[0]='\0';for(int i =1; i <MAX; i++){scanf("%d",&H[i]);H[i +1]='\0';
m = i -1;if(getchar()=='#')break;}jiandui(H, m);duipaixu(H,m);fclose(fp);}
堆排序实现#include <stdio.h>#define MAX 100FILE *fp;void jiaohuan(int *a, int *b){ int temp; temp = *b; *b = *a; *a = temp;}void jiandui(int SHUZU[MAX], int x){ for (int i = x; i > 0; i--) { if (SHUZU[i / 2] >