建堆的时间复杂度计算

本文探讨了建堆过程中的时间复杂度计算,以最坏情况作为分析对象,假设堆为满二叉树。通过公式推导,从底层向上逐层计算节点执行次数,最终得出建堆的时间复杂度为O(N)。
摘要由CSDN通过智能技术生成

目录

公式及结果

原理解释

公式推导


公式及结果

        

        以最坏情况来计算建堆的时间复杂度,假设该堆为满二叉树,堆高为h。i为第i层,设第i层高度为hi,第i层结点数位ni,堆的复杂度为

       i = 1 ,直到 i = h-1 结束。将 1 到 h - 1 的 n1*h1 +..... ni*hi 相加。

       t(n)  = O(N)。

原理解释

图仅为解释时间复杂度计算,实际建堆为由下向上。先建地基,再盖高楼,逐层往上。

每层的每个结点都要向下执行当前的高度次。

直到倒数第二层的每个结点执行完一次结束。

图中 h 为 4 。

第一层到最底层的高度为 h1 = 3,有一个结点 n1 = 1,相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>