堆中兄弟节点没有大小关系所以堆并不是有序的堆中根节点是最大或最小节点堆最后一层不满但是从左到右连续二叉树分为满二叉树完全二叉树堆满二叉树是完全二叉树堆的上限下限如下图中最右边图像在向上/向下调整算法中每次只插入一个数是在堆中插入数据然后向上调/向下调满二叉树完全二叉树高度都是logn这个量级在向上/向下调整算法中在堆中每次只插入一个数堆调整时的最大次数都是堆的高度次从最底层向上调/从最顶层向下调即下图中的h所以可知堆的向上/向下调整算法的时间复杂度都是logn (1忽略)如下图在向上/向下调整算法建堆中某层节点数*往上层数往下层数该层的最坏调整次数每一层的最坏调整次数之和向上/向下调整算法建堆的时间复杂度从此后用向下调整建堆下面图片中给堆排序时间复杂度为什么和向上调整建堆一样节点除去最后一个节点其余节点从最后向前依次判断是否能与上面的双亲节点发生向下调整。该过程与向上调整建堆过程一样二叉树最底层节点数最起码占总结点数的一半链式二叉树 不是完全二叉树了前序遍历读根的值左子树遇空时再读右子树若都为空返回到已读的根的上一个子树3.topk 没懂