2013-09-23 128 views

回答

4

內循環將迭代1次,然後2次,然後...,然後2^n次。所以我們有1 + 2 + 4 + ... + 2^n = 2^(n + 1) - 1 = O(2^n)內循環迭代。

內循環的一次迭代具有不變的複雜性,所以summed_inner_loop_complexity = O(2^n)

整個複雜度是O(2^n)

+0

號你可以通過'N'乘,得到總結內環複雜(更好),但都意味着你在數數。答案應該是'O(2^n)'。 – Teepeemm

+0

我認爲它應該是O(2^n),正如Teepeemm所解釋的那樣。 –

+0

謝謝,我的錯誤 – Ari

5

我更喜歡從內到外看這些問題。卸下m,我們有:

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) 
} 

所以,總體來說:sum_1^n O(2^i)=O(2^(n+1))=O(2^n)

+0

謝謝澄清.. –

0

形式上,有條不紊,你可以使用六西格瑪符號:

enter image description here