《数字排序的C语言程序》由会员分享,可在线阅读,更多相关《数字排序的C语言程序(7页珍藏版)》请在金锄头文库上搜索。
#include#define N 8int k,j;void build(int *a,int i,int n)/* 建堆函数 */int tmp;k=i;j=2*k+1;while(j=aj)break;tmp=ak;ak=aj;aj=tmp; k=j;j=2*j+1;/* 打印数组函数 */void prnt(int *a,int n)int i;printf(n);for(i=0;isize-1)goto end;printf(%d ,acnt+); printf(n);tmp*=2; end:printf(n); return; /* 打印已排序数组函数 */void prntar(int *a,int b2,int len)int i; printf( 已排序:n);for(i=0;i=0;i-)build(a,i,len-1); prnthp(a,0,len-1); /* 改建堆 */for(i=0;ilen-1;i+)tmp=a0;a0=alen-1-i;alen-1-i=tmp;build(a,0,len-2-i);prnthp(a,0,len-2-i); prntar(a,len-1-i,len-1); printf(n-n);printf(n 排序结果:n); prnt(a,len);printf(n=nn);