void BuildHeap(int nArray[], int nLength)
{
for (int i = nLength / 2 - 1; i >= 0; --i)
{
AdjustHeap(nArray, nLength, i);
}
}
void HeapSort(int nArray[], int nLength)
{
BuildHeap(nArray, nLength);
while(nLength > 1)
{
int temp = nArray[0];
nArray[0] = nArray[nLength - 1];
nArray[nLength - 1] = temp;
AdjustHeap(nArray, --nLength, 0);
}
}
void Test_Sort()
{
int nArray = {1,3,2,5,4};
//BubbleSort(nArray, 5);
//SelectSort(nArray, 5);
//InsertSort(nArray, 5);
//QuickSort(nArray, 0, 4);
//ShellSort(nArray, 5);
//MergeSort(nArray, 0, 4);
HeapSort(nArray, 5);
for (int n = 0; n < 5; ++n)
{
std::cout << nArray[n] << " ";
}
std::cout << std::endl;
}