嵌套循环时间分析

时间:2013-03-02 16:14:04

标签: algorithm time-complexity nested-loops

好的我正在参加算术课,正在为考试学习... 不幸的是..我无法理解嵌套循环时间分析背后的概念

此代码中有三个循环

for (i=1->n)
 for (j=1->i)
   for (k=1->i)
     x=x+1;

我无法理解如何找到答案:s 任何答案都会有很大的帮助 谢谢伙计:)

2 个答案:

答案 0 :(得分:3)

你需要总结一下循环,它只是需要计算的多个sigmas:

Sigma Calculation

内部sigma中的 1 是你在最里面的循环中所做的复杂性。

答案 1 :(得分:1)

i=1时,k-loop运行1次,j-loop运行1次。总= 1.1 = 1次
i=2时,k-loop运行2次,j-loop运行2次。总计= 2.2 = 4次
i=3时,k-loop运行3次,j-loop运行3次。总计= 3.3 = 9次
i=n时,k-loop运行n次,j-loop运行n次。总数= n.n = n ^ 2次

因此,算法的时间复杂度为O(1 + 2 ^ 2 + 3 ^ 2 + ... n ^ 2)= O(n(n + 1)(2n + 1)/ 6)= O(n ^ 3)