在斐波那契數列遞迴中,因為每次計算第n位的結果時,都要呼叫 f(n-1)+f(n-2),而f(n-1)又要呼叫f(n-1-1)+f(n-1-2)....等f(n-1)計算出來了,又要計算f(n-2),f(n-2)又要呼叫f(n-2-1)+f(n-2-2)...如此反覆下去,隨著n的增大,計算f(n)的時間必然膨脹,
時間複雜度:【演算法16】遞迴演算法的時間複雜度終結篇
空間複雜度:o(n)
故做如下測試:
n為1時,所花時間是11萬納秒。
n為10時,所花時間是44萬納秒。
n為20時,所花時間是67萬納秒。
n為30時,所花時間是5百萬納秒。
n為40時,所花時間是3億納秒。
n為100時,所花的時間是算了白天也沒結果,所以我把測試停了。。。
紙上得來終覺淺,覺知此事要躬行。
函式遞迴之斐波那契數列
背景 在函式遞迴問題中乙個典型問題是求解斐波那契數列 但是函式遞迴會面臨著資源的大量消耗問題 按照一種最為基本的寫法 include using namespace std long long fib long long a intmain cout fib n return0 在n 50左右時,大...
斐波那契數列之遞迴
斐波那契數列,又稱 分割數列,指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 在數學上,斐波納契數列以如下被以遞迴的方法定義 f0 0,f1 1,fn f n 1 f n 2 n 2,n n 斐波那契數列最初是為了計算兔子的出生數量而出現的,所以也叫 兔子數列 遞迴的本質其實程式的方法自...
遞迴與斐波那契數列
迭代實現 def fab n a1 1 a2 1 a3 1if n 1 print 輸入有誤 return 1 while n 2 0 a3 a1 a2 a1 a2 a2 a3 a 1return a3 result fab 20 if result 1 print 總共有 d對小兔子誕生 resu...