/*堆排序*/#include<iostream>usingnamespacestd;voidAdjustDown(int*array,size_tsize,size_tparent){size_tchild=parent*2+1;while(child<size){if(child+1<size&&array[child]<array[child+1]){++child;}if(array[child]>array[parent]){swap(array[child],array[parent]);parent=child;child=parent*2+1;}else{break;}}}voidHeapSort(int*array,size_tsize){//建堆for(inti=(size-2)/2;i>=0;--i){AdjustDown(array,size,i);}//选数据排序for(size_ti=0;i<size;++i){swap(array[0],array[size-i-1]);AdjustDown(array,size-i-1,0);}}