我在完全理解Big-O表示法以及嵌套循环如何影响运行时方面遇到了一些麻烦。我知道嵌套循环的时间复杂度等于执行最内层语句的次数,但我只是想检查一下我的理解。
count=1
for i=1 to N
for j=1 to N
for k=1 to N
count+=1
由于有2个嵌套循环,它将是 O(N 3 ),对吗?
count=1
for i=1 to N^2
for j=1 to N
count+=1
外部循环迭代 N 2 ,内部循环运行 N 次,这使得 O(N 3 < / sup>),对吧?
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循环中被调用?
答案 0 :(得分:-2)
Big O -notation描述了算法或程序在输入量方面如何缩放性能(运行时间,内存要求等)。
例如:
你的第三个例子是 O(N ^ 4),因为这是N最内部迭代的总数如何缩放。
对于这些简单的情况,您可以计算最里面的迭代次数,但肯定会有更复杂的算法。