求详细的解答过程,三个循环的时间复杂度就算

答案的三个求和表达式不大明白,i,j,k三者的关系传达应该怎么用公式来做?先考虑外循环还是内循环,求大神指导,刚学不懂

    这是循环嵌套。

    前面有个n,是个数字,进入第一个图片第一个for后,i=1,判断i<=n是否成立,如果成立,继续进入第二个for,若不成立直接退出第一个for;当成立,继续进入第二个for,j=1,判断j<=i是否成立……

    当第三个for不满足k<=j时,第三个for暂时结束,是暂时的;然后第二个for中的j++,j<=i成立时继续进入第三个for,k=1;当第二个for中的j<=i不成立时第二个for暂时结束;第一个for完成第一波,i++后判断i<=n是否成立,若成立第二个for继续,如不成立,退出。当i<=n不成立时才退出整个循环。

    先进入外面的循环成立后再进入里面的循环,里面的循环不成立后退出最里面的循环,判断外层循环是否成立,若成立继续进入里面的循环否则再退出一层循环。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-26
当i=1时,最内层循环执行1次,
当i=2时,最内层循环执行1+(1+2)次,
当i=3时,最内层循环执行1+(1+2)+(1+2+3)次,
...
当i=n-1时,最内层循环执行1+(1+2)+...+(1+2+...+n-2+n-1)次,
当i=n时,最内层循环执行1+(1+2)+...+(1+2+...+n-1+n)次。
最内层循环共执行1+(1+2)+...+1+(1+2)+...+(1+2+...+n-2+n-1)+1+(1+2)+...+(1+2+...+n-1+n)=(1/2)(1^2+2^2+...+n^2+1+2+...+n)=(1/2)((1/6)n(n+1)(2n+1)+(1/2)n(n+1))=(1/12)n(n+1)(2n+1)+(1/4)n(n+1),所以时间复杂度是O((1/6)n^3),忽略常数后即O(n^3)。
相似回答