二叉堆及堆排序详解保姆级教程略显罗嗦但保证能看懂
社区首页 (3634)




请编写您的帖子内容
社区频道(4)
显示侧栏
卡片版式
全部
交流讨论
博文收录
Ada助手
最新发布
最新回复
标题
阅读量
内容评分
精选

142
评分
回复


二叉堆及堆排序详解保姆级教程略显罗嗦但保证能看懂
因为前面说过,上滤是将操作节点视为子节点,因此如果发生了数据交换,较大的那个就是父节点(parent_node),下滤则相反,因为操作节点总是被视为父节点,因此如果发生了交换,较大值则一定是左右两个子节点的其中一个(也就是max_node),所以两种方法在进行递归调用的时候,出发位置是不同的。前面说过,一个大根堆,其最大值一定是最上层的根元素,那么,我们只需要将它与数组的最后一位互换,然后将换上去的节点做下滤操作。但是显然,已经不存在什么子树了,因为节点【1】已经是处于树的最底部,无法再下探。
复制链接 扫一扫
分享
为您搜索到以下结果: