分享

大根堆排序

 雪柳花明 2017-09-15
 



堆的存储

一般都用数组来表示堆,

第i结点为子节点,则该i节点的父结点下标就为(i – 1) / 2。

第i节点为父节点时,它的左右子结点下标分别为2 * i + 1和2 * i + 2。

如第0个结点左右子结点下标分别为1和2。


大根堆排序的过程:

1. 首先,建立这个大根堆,大根堆使用数组表示的,所以父节点的个数,

最多为array.size()/2,数组的个数除以2.

2. 先建立一个大根堆交换的函数,head_ajust().该函数负责,父节点大于左右子节点。

3. 建立大根堆的时候,从父节点从size/2----到---0,以保证,每一个父节点的值,都大于左右子节点的值。

1.建立完之后,就是排序了。


 
 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多