摘要:
在普通堆排序中,原始的数组必须要先添加进一个maxHeap堆,再将堆中的元素取出来放到一个temp数组,这个堆和数组都需要消耗额外的空间,是非原地排序,复杂度都是O(nlogn) 因此可以对这两个过程进行优化: 不用将原始数组添加进一个额外的堆,而是直接将原始数组看成一个堆,用heapify()方法 阅读全文
posted @ 2021-10-31 15:56
振袖秋枫问红叶
阅读(72)
评论(0)
推荐(0)
摘要:
动态数组实现二叉堆 二叉堆的定义 二叉堆是一颗完全二叉树,元素按层级从左到右排列成树。空的分支只能在右下方 堆中每个节点的值都大于等于其孩子的值(最大堆) 根节点索引从1开始,从上到下、从左到右依次用数组存储,父节点索引为n时,子节点为2n和2n + 1;子节点为n时,父节点为1/2n 根节点索引从 阅读全文
posted @ 2021-10-31 15:55
振袖秋枫问红叶
阅读(57)
评论(0)
推荐(0)