For loop 分析嵌套循环

For loop 分析嵌套循环,for-loop,time-complexity,For Loop,Time Complexity,分析以下各项的运行时复杂性: for(i=1; i <= n; i=i*2) for(j=1; j<= n-i; j++) print j; 因此,我得到以下信息: 是这样吗?我真的不确定变量的变化和中间和。我们将分别研究循环的每个部分 外环可以表示为: for(i=1; i <= n; i=i*2) f(n, i) 这具有n的复杂性,因为n支配ii是小于n的二次幂,因此它们的差值在最坏情况下为n-1 因此,复杂性是log(n)*n或nlog(n)Ni

分析以下各项的运行时复杂性:

for(i=1; i <= n; i=i*2)
  for(j=1; j<= n-i; j++)
    print j;
因此,我得到以下信息:


是这样吗?我真的不确定变量的变化和中间和。

我们将分别研究循环的每个部分

外环可以表示为:

for(i=1; i <= n; i=i*2)
    f(n, i)
这具有
n
的复杂性,因为
n
支配
i
i
是小于
n
的二次幂,因此它们的差值在最坏情况下为
n-1


因此,复杂性是
log(n)*n
nlog(n)

Nice。像这样拆分for循环真的可以吗?这样做时,您必须记住循环之间的关系。您指的是
print x
for(i=1; i <= n; i=i*2)
    f(n, i)
for(j=1; j<= n-i; j++)
    print j;