堆排序 #include<stdio.h> HeapSort(int a[],int n) { int i,j,k,h; int t; for(i=n/2-1;i>=0;i--) //建堆 { while(2*i+1<n) //第i个结点有左子树 { j=2*i+1; if((j+1)<n) { if(a[j]<a[j+1]) j++; } if(a[i]<a[j])//找大数 { t=a[i]; a[i]=a[j]; a[j]=t; i=j; //堆结构破坏,重新进行筛运算 } else { break; } } } printf