堆
xuptly
三分天注定,七分靠打拼。爱拼才会赢。
展开
-
堆的创建
堆是一个完全二叉树 完全二叉树的特点:前H-1层是满的,最后一层连续缺失右边的叶子。 堆的分类 大顶(根)堆:根结点的值大于(等于)其左右子女的值。 小顶(根)堆:根结点的值小于(等于)其左右子女的值。 图: 堆的目的:进行排序(选择类排序),但是效率一点都不高。 堆的创建: 创建完全二叉树 调整成大/小根堆 创建方法: 数组存储:左子女 2i , 右子女 2i + 1. 链式存储: ...原创 2019-08-01 22:08:39 · 158 阅读 · 0 评论 -
堆排序
将完全二叉树调整成堆 1. 首先,把完全二叉树存入队列中。 问题:这里为什么用队列,不用栈? 解答:因为是从根开始的,要按层遍历(逆着)取出来非叶子结点,然后这些结点和自己的子女进行比较调整。 结果: 1.所有元素都入队了 2.rear在最后一个元素上指着 3.front在第一个叶子节点上指着 4.end作为岗哨,为了最后输出排好的队列,因为后面删结点会用rear- - ,所以需要提前end =...原创 2019-09-26 17:41:44 · 122 阅读 · 0 评论