王道数据结构 (20) 堆排序 基于二叉堆的排序

在上文构建好2叉堆后 进行堆排序 

在堆创建好后,每次取出堆顶元素,并且调整堆,把堆顶元素放在数组最后即可。

 

 我们将堆顶元素与堆的最后一个元素进行交换  得到 

 

 此时要进行调整   调整都是从父节点、左孩子节点、右孩子节点三者中选择最大者跟父节点进行交换

对 3 17  8 进行调整  得到 

 

 还不符合 对 3 7 16 这个堆进行调整 

 

 

 按照这个思路进行调整 

 

 

 对 3  16  8 这个堆进行调整  得到 

     这个堆符合要求 再进行调整 

 

 

 

 

 

  

 

 

 

 

 

  

 到这个时候调整完成 堆排序完成了 

 

posted @ 2020-08-20 10:11  1点  阅读(274)  评论(0编辑  收藏  举报