Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 算法分析,算法的时间复杂度 m=1; 因为(i=1;i_Algorithm_Time_Asymptotic Complexity - Fatal编程技术网

Algorithm 算法分析,算法的时间复杂度 m=1; 因为(i=1;i

Algorithm 算法分析,算法的时间复杂度 m=1; 因为(i=1;i,algorithm,time,asymptotic-complexity,Algorithm,Time,Asymptotic Complexity,内循环将迭代1次,然后2次,然后…,然后2^n次。所以我们有1+2+4+…+2^n=2^(n+1)-1=O(2^n)内循环的迭代 内部循环的一次迭代具有恒定的复杂性,因此求和内部循环的复杂性=O(2^n) 整个复杂性是O(2^n)我更喜欢从内到外看这些问题。除去m,我们有: m=1; for(i=1;i<=n;i++){ m=m*2; for(j=1;j<=m;j++){ do something that is O(1) } } 对于(i=

内循环将迭代1次,然后2次,然后…,然后2^n次。所以我们有
1+2+4+…+2^n=2^(n+1)-1=O(2^n)
内循环的迭代

内部循环的一次迭代具有恒定的复杂性,因此
求和内部循环的复杂性=O(2^n)


整个复杂性是O(2^n)

我更喜欢从内到外看这些问题。除去
m
,我们有:

m=1;
for(i=1;i<=n;i++){
    m=m*2;
    for(j=1;j<=m;j++){
        do something that is O(1)
    }
}

对于(i=1;i形式上和系统上,您可以使用Sigma表示法:


不可以。你可以乘以
n
,或者得到求和的内部循环复杂度(更好),但这两种方法都意味着你计数过多。答案应该是
O(2^n)
。我认为应该是O(2^n),正如蒂皮姆所解释的那样。
for(i=1;i<=n;i++){
    for(j=1;j<=2^i;j++){
        do something that is O(1)
    }
}
for(i=1;i<=n;i++){
    O(2^i)
}