0
点赞
收藏
分享

微信扫一扫

【数据结构】证明建堆的时间复杂度


建堆的时间复杂度

因为堆是完全二叉树,而满二叉树也是完全二叉树。此处为了简化,将采用满二叉树来证明。(时间复杂度本来看的就是近似值,所以多几个节点不会影响最终结果):

假设树的高度为

【数据结构】证明建堆的时间复杂度_算法


【数据结构】证明建堆的时间复杂度_时间复杂度_02

则需要移动节点总的移动步数为:

【数据结构】证明建堆的时间复杂度_排序算法_09

   ①

   ②

② - ① 错位相减:

【数据结构】证明建堆的时间复杂度_完全二叉树_10

【数据结构】证明建堆的时间复杂度_完全二叉树_11

【数据结构】证明建堆的时间复杂度_算法_12

 

【数据结构】证明建堆的时间复杂度_完全二叉树_13

【数据结构】证明建堆的时间复杂度_时间复杂度_14

因此,建堆的时间复杂度为 

【数据结构】证明建堆的时间复杂度_数据结构_15

  

举报

相关推荐

0 条评论