void HeapSort(InputContainer &container) { typename InputContainer::size_type end = container.size(); typename InputContainer::size_type pos = end; HeapBuild(container , end); for (; pos >= 2; --pos){ std::swap(container[0], container[pos - 1]); _MaxHeap(container, --end, 0); } }
int main () { Data_t a [10] = {4,2,7,1,9,4,6,2,8,0}; struct BHeap *heap = HeapBuild(a, 10); // struct BHeap *heap = HeapNew(10); HeapPrint(heap); printf("%d\n", HeapExtractMin(heap)); HeapPrint (heap); HeapInsert (heap, 1); HeapPrint(heap); HeapDestroy(heap); return 0; }