【发布时间】:2017-09-22 16:27:29
【问题描述】:
我无法完全理解 Big-O 表示法以及嵌套循环如何影响运行时间。我知道嵌套循环的时间复杂度等于执行最里面的语句的次数,但我只是想检查一下我的理解。
1
count=1
for i=1 to N
for j=1 to N
for k=1 to N
count+=1
既然有 2 个嵌套循环,那就是 O(N3),对吗?
2
count=1
for i=1 to N^2
for j=1 to N
count+=1
外循环迭代N2,内循环运行N次,这使得它O(N3),对吗?
3
count=1
for (i=0;i<N;++i)
for (j=0;j<i*i;++j)
for (k=0;k<j;++k)
++count
这将是 O(N),因为 N 只在第一个 for 循环中被调用?
【问题讨论】:
-
第三种情况是n^4,即使n只被“调用”一次,j指的是i,k指的是j。
-
这将帮助您更好地理解Big O。第三个示例的时间复杂度也是
O(N^4)