嵌套循环的大O运行时间?

时间:2014-10-07 00:41:20

标签: performance algorithm data-structures runtime big-o

如何计算此代码的大O运行时效率?我的直觉告诉我它是O(n ^ 3),但我不确定,因为我不确定这些循环是独立的还是依赖的。

for (i=1; i<=n; i++)
    for (j=1; j<=n; j++)
        for (k=1; k<=n; k++)
          print ("%d %d %d/n", i, j, k);

2 个答案:

答案 0 :(得分:1)

你的直觉是对的。你有三个嵌套for循环遍历n,所以对于前n个循环中的每个循环,你创建另外n个循环,每个循环又生成n个循环。因此O(n ^ 3)。

编辑:想想这将如何发挥 - 我首先是1,j 1,然后k循环1到n。只有在k经历了整个循环之后,j才会增加到2,然后k再次经历循环,依此类推。

答案 1 :(得分:0)

,此函数将为O(N ^ 3),因为在每个循环内部运行N次迭代。
 循环独立,因为它们嵌套

N * N * N = N ^ 3