王道数据结构 (20) 堆排序 基于二叉堆的排序
在上文构建好2叉堆后 进行堆排序
在堆创建好后,每次取出堆顶元素,并且调整堆,把堆顶元素放在数组最后即可。
我们将堆顶元素与堆的最后一个元素进行交换 得到
此时要进行调整 调整都是从父节点、左孩子节点、右孩子节点三者中选择最大者跟父节点进行交换
对 3 17 8 进行调整 得到
还不符合 对 3 7 16 这个堆进行调整
按照这个思路进行调整
对 3 16 8 这个堆进行调整 得到
这个堆符合要求 再进行调整
到这个时候调整完成 堆排序完成了
越努力越幸运