//堆排序 void swap(int& a,int &b) { int tmp = a; a = b; b = tmp; } void siftAdjust(int elem[],int low,int high) { for(int f=low,i=2*low+1;i<=high;i=2*i+1) { if(ielem[i]) { break; } swap(elem[f],elem[i]); f = i; } } void heapSort(int elem[],int n) { int i; for(i=(n-2)/2;i>=0;i--) { siftAdjust(elem,i,n-1); } for(int i=n-1;i>0;i--) { swap(elem[0],elem[i]); siftAdjust(elem,0,i-1); } } int main(void) { int n = 10; int arr[10] = {0}; for(int i=0;i