堆排序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++
编译器基本一次过。哦对了,如果你想看看别的语言实现,下面这些链接也蛮实用的:
建议:想真正搞懂堆结构,最好自己动手写一遍 heapify
和 buildHeap
。有点绕但不难,慢慢来。
如果你在学算法,又想找个不太复杂但结构清楚的例子,这份代码可以看看,调试空间也够大。
859B
文件大小:
评论区