Ash*_*val 4 algorithm time asymptotic-complexity
m=1;
for(i=1;i<=n;i++){
m=m*2;
for(j=1;j<=m;j++){
do something that is O(1)
}
}
Run Code Online (Sandbox Code Playgroud)
上面代码的时间复杂度是多少?请告诉我如何解决这些类型的问题.
我更喜欢从内到外看这些问题.删除m,我们有:
for(i=1;i<=n;i++){
for(j=1;j<=2^i;j++){
do something that is O(1)
}
}
Run Code Online (Sandbox Code Playgroud)
要么:
for(i=1;i<=n;i++){
O(2^i)
}
Run Code Online (Sandbox Code Playgroud)
总的来说:sum_1^n O(2^i)=O(2^(n+1))=O(2^n).