七种排序算法的简单分析(八)

2013-04-10 11:40:30 · 作者: · 浏览: 1136

 

  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;

  }