概述
m=0
for(i=1;i<=N;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;k++)
m++;
求时间复杂度
时间复杂度等于m的被执行的次数:
i=1时,m被执行一次:
i=2时,m被执行1+3=4次:
i=3时, m被执行1+3+6=10次 :
可以观察到,第i次循环次数是一个有规律的数列: 1, 3, 6, 10,... ...
设数列,其中 ,
那么观察可得,
,
则
;
也就得到了第i次循环的通项公式.
i=n时,m++执行 次:(图片中sum公式有误,具体请看下方推导)
知道了第n次循环m的执行次数,再全部加起来就能知道总的次数,也就是求数列的前n项和:
又因为;
所以数列an前n-1项和
.
把(n-1)换成n,也就是数列前n项和;
即m++的执行次数也是.
代入数据,验证正确.
最后,可以看出n的最高次幂为,因此三重循环的时间复杂度是.
最后
以上就是土豪黑裤为你收集整理的【个人理解】计算for三层嵌套循环的时间复杂度的全部内容,希望文章能够帮你解决【个人理解】计算for三层嵌套循环的时间复杂度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复