如何计算此代码的大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);
答案 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