まず、フィボナッチ数
フィボナッチ列は、列1の数、1、2、3、5、8、13、21、34、55、89、144、233,377,610,987,1597,2584,4181,6765を指し、10946,17711,28657,46368 ......
第二に、再帰的なアルゴリズム
1.コード
公共 int型 FIB(int型N){ 場合(N == 1 || N == 2 ){ 返す 1 。 } 戻り FIB(N-1)+ FIB(N-2 )。 }
2.短所:時間FIB(n)は、複数の低性能、単に例示のための一般的な再帰アルゴリズムを繰り返し計算
第三に、改善:時間のためのスペースは、二重カウントすることなく、記憶された計算されたFIB(n)は、空間的複雑度はO(N)
公共 int型 FIB(int型N){ INT []配列= 新しい INT [N]。 配列[ 0] = 1 。 配列[ 1] = 1 。 以下のために(int型 I = 2、iがn <; iは++ ){ アレイ[I] =配列[I-1] +配列[I-2 ]。 } 戻り配列[N-1 ]。 }
最初の2つの数字と結果の合計から算出された第1の二つの数字:第四に、再び(1)のみを格納番号3スペースOを減らすために、改善されました
公共 int型 FIB(int型N){ int型第= 1 。 int型 = 2秒。 INT = 3第三; 以下のために(int型 I = 3; iが++; iが<= N ){ 第 =第一+ 第二; 第一 = 二; 第 = 第三; } 戻り三。 }
第五に、末尾再帰
公共int型FIB(INT nは、最初のINT、INT秒){ IF(N <= 1){ 第返します。 } rerurn FIB(N-1、第二+第1、第2)。 }
参考:
https://www.cnblogs.com/andy-songwei/p/11707142.html