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

:

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

①
②
② - ① 错位相减:





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

【数据结构】证明建堆的时间复杂度
阅读 164
2022-12-30
因为堆是完全二叉树,而满二叉树也是完全二叉树。此处为了简化,将采用满二叉树来证明。(时间复杂度本来看的就是近似值,所以多几个节点不会影响最终结果):
假设树的高度为

:

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

①
②
② - ① 错位相减:





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

相关推荐
精彩评论(0)