【算法】三层嵌套循环的时间复杂度

(点击上方公众号,可快速关注)

问题

在中国大学MOOC听北京大学的《算法初步》课程,第一章有道课后习题比较典型,是关于三层循环的时间复杂度的评估。问题是这样的:

7c8ea962fc0d3d4252a62387236c404f.png

解法一

作为选择题,最直接的方法就是通过代入法验证结果对不对。

当n=4,此时c只能是3,b只能是2,a只能为1,所以语句执行次数为1。将n=4带入上A、B、C三个选项,看看哪一个等于1,这道题比较直接,代入n=4的情况就能得到答案C。否则,就多计算几个n的值代入验证。

解法二

近似求法。

在坐标系上将点画出来,如果只有b、c两个维度:

e0c724fc7e0eee2a108d1bf8112123ea.jpeg

可以看到,将最外侧的点连接起来组成一个三角形,三角形边和内部的点的个数就是语句执行的次数,可以用三角形的面积公式近似,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值