建堆的时间复杂度
因为堆是完全二叉树,而满二叉树也是完全二叉树。此处为了简化,将采用满二叉树来证明。(时间复杂度本来看的就是近似值,所以多几个节点不会影响最终结果):
假设树的高度为
:
则需要移动节点总的移动步数为:
①
②
② - ① 错位相减:
因此,建堆的时间复杂度为
微信扫一扫
因为堆是完全二叉树,而满二叉树也是完全二叉树。此处为了简化,将采用满二叉树来证明。(时间复杂度本来看的就是近似值,所以多几个节点不会影响最终结果):
假设树的高度为
:
则需要移动节点总的移动步数为:
①
②
② - ① 错位相减:
因此,建堆的时间复杂度为
相关推荐