voidTopK()//找出前K个最小的---->建大堆{const size_t N =100000;const size_t K =100;
size_t* a =(size_t*)malloc(sizeof(size_t)* N);for(size_t i =0; i < N; i++){
a[i]=rand();}
Heap hp;HeapInit(&hp, a, K);for(size_t i = K; i < N; i++){if(HeapTop(&hp)> a[i]);{HeapPop(&hp);HeapPush(&hp, a[i]);}}HeapPrint(&hp);}
// 堆排序 voidHeapSort(int* a,int n){//升序--->先建大堆for(int i =(n -1-1)/2; i >=0; i--){AjustDown(a, n, i);}
size_t end = n -1;while(end >0){Swap(a[0], a[end]);AjustDown(a, end,0);
end--;}}