Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 我应该如何分析这两种不同代码的时间复杂度分析?_Loops_Time Complexity_Big O_Complexity Theory - Fatal编程技术网

Loops 我应该如何分析这两种不同代码的时间复杂度分析?

Loops 我应该如何分析这两种不同代码的时间复杂度分析?,loops,time-complexity,big-o,complexity-theory,Loops,Time Complexity,Big O,Complexity Theory,我应该如何分析这两种不同代码的时间复杂度分析 sum=0; for(i=1; i<=n; i++) for(j=1; j<=n; j*=2) sum++; sum=0; 对于(i=1;i它们的复杂度都等于O(n logn) 请注意,sum++是O(1)运算 这是因为每次迭代翻倍的一个(在第一个代码中是j,在第二个代码中是i)只会迭代logn次 这里,由于循环变量彼此不依赖,只依赖于n,因此将外循环更改为内循环不会产生任何差异 编辑(基于OP的编辑): 我

我应该如何分析这两种不同代码的时间复杂度分析

sum=0;
for(i=1; i<=n; i++)
    for(j=1; j<=n; j*=2)
          sum++;
sum=0;

对于(i=1;i它们的复杂度都等于O(n logn)

请注意,sum++是O(1)运算

这是因为每次迭代翻倍的一个(在第一个代码中是j,在第二个代码中是i)只会迭代logn次

这里,由于循环变量彼此不依赖,只依赖于n,因此将外循环更改为内循环不会产生任何差异

编辑(基于OP的编辑):

我不明白你说的几何级数是什么意思。但是,如果你说的是代码的数学行为,我必须补充一点,它不是一个几何级数,因为对于外循环的每一次迭代,内循环都迭代n次

因此,对于logn外部循环迭代,代码的复杂度=O(logn*n*1)=O(nlogn)

此外,内循环不受外循环的影响,因为它仅依赖于n。

第一个片段:

第二段:

我是如何得出对数的:


来源:,幻灯片12。

我编辑了我的原始帖子。我想知道,第二个代码是否会导致几何级数,因为内部循环的数量似乎受到外部循环的影响?@user2965-我根据您对问题的编辑进行了编辑。请检查您是否清楚。@user2965-如果答案有帮助,请标记answer被接受。如果答案有帮助,也请投票。
sum=0;
for(j=1; j<=n; j*=2)
    for(i=1; i<=n; i++)
          sum++;