堆排序C++实现示例

C++写的堆排序代码,结构清晰,编译通过,拿来练手刚刚好。用的是标准的建堆+调整逻辑,逻辑不绕,运行也稳。适合刚接触堆排序的朋友,边调边理解,效率挺高。

堆排序的思路说白了就是先建个大根堆,每次把堆顶元素放到末尾,调整堆,重复这个操作直到排序完成。像这样:

void heapSort(int arr[], int n) {
  buildHeap(arr, n);
  for (int i = n - 1; i > 0; i--) {
    swap(arr[0], arr[i]);
    heapify(arr, i, 0);
  }
}

你可以参考下这段 C++的实现,调试体验还不错,配合 g++ 编译器基本一次过。哦对了,如果你想看看别的语言实现,下面这些链接也蛮实用的:

建议:想真正搞懂堆结构,最好自己动手写一遍 heapifybuildHeap。有点绕但不难,慢慢来。

如果你在学算法,又想找个不太复杂但结构清楚的例子,这份代码可以看看,调试空间也够大。

cpp 文件大小:859B