指數級計算複雜度
計算呼叫次數
#include long fibonaccicalltimes(long n);int main(void)
return 0;
}long fibonaccicalltimes(long n) else
}
enter an integer-satrt:0
enter an integer-end:11
fibonaccicalltimes(0)=1
fibonaccicalltimes(1)=1
fibonaccicalltimes(2)=3
fibonaccicalltimes(3)=5
fibonaccicalltimes(4)=9
fibonaccicalltimes(5)=15
fibonaccicalltimes(6)=25
fibonaccicalltimes(7)=41
fibonaccicalltimes(8)=67
fibonaccicalltimes(9)=109
fibonaccicalltimes(10)=177
fibonaccicalltimes(11)=287
請按任意鍵繼續. . .
分析上邊邏輯漏洞
正確答案:
為了計算第n個fibonacci數,共需要呼叫fibonacci函式的此時達到2^n數量級。
enter an integer-satrt:0
enter an integer-end:31
fibonacci(0)=0
fibonacci(1)=1
fibonacci(2)=1
fibonacci(3)=2
fibonacci(4)=3
fibonacci(5)=5
fibonacci(6)=8
fibonacci(7)=13
fibonacci(8)=21
fibonacci(9)=34
fibonacci(10)=55
fibonacci(11)=89
fibonacci(12)=144
fibonacci(13)=233
fibonacci(14)=377
fibonacci(15)=610
fibonacci(16)=987
fibonacci(17)=1597
fibonacci(18)=2584
fibonacci(19)=4181
fibonacci(20)=6765
fibonacci(21)=10946
fibonacci(22)=17711
fibonacci(23)=28657
fibonacci(24)=46368
fibonacci(25)=75025
fibonacci(26)=121393
fibonacci(27)=196418
fibonacci(28)=317811
fibonacci(29)=514229
fibonacci(30)=832040
fibonacci(31)=1346269
請按任意鍵繼續. . .
複雜度計算
在1 n 中,能被 2整除的有 n 2個,能被 3整除的有 n 3個,則該演算法的複雜度可這樣計算 o n n 2 1 n 3 2 n 5 3 n 7 4 即o n n n 考慮到6這個數,它既是2的倍數,也是3倍數,因此還要用到容斥原理。設能被第 i個素數整除的正整數的集合為ai。對於特定的乙個整...
計算複雜度
求極限 n 無窮大 表示式n 無窮大 表示式1 n 0 2n2 2n3 n n 3 2 n 2 1 n 2 n 無窮大的時候 2 n 0 1 n 2 0 2 常數 此演算法的時間複雜度是n 3 時間複雜度的概念 執行的次數和同數量級 n最高次方數 取商是常數 那麼同數量級就是這個演算法的時間複雜度 ...
計算時間複雜度與空間複雜度
如何衡量乙個演算法的好壞?複雜度 空間複雜度 時間複雜度 事後統計法 就是在演算法的程式執行結束後,根據實際執行結果衡量演算法好壞 事前估計法 就是在程式執行之前,先按照程式 來預估演算法的好壞 時間複雜度 用基本指令的執行次數而不是執行時間代表時間複雜度,同乙個程式在不同配置的機器下的執行時間不一...