だから、私はフィボナッチ数を得るためにJavaで再帰的な方法を持っています - 私が持っている唯一の質問は、時間の複雑さは何ですか?私はそれがO(2^n)だと思うが、間違いかもしれない? (繰り返しが良いとわかりますが、それはエクササイズです)フィボナッチアルゴリズムの時間複雑度
public int fibonacciRecursive(int n)
{
if(n == 1 || n == 2) return 1;
else return fibonacciRecursive(n-2) + fibonacciRecursive(n-1);
}
は「反復がずっといいです」を計算するために、この
を使用することができ、一般的に間違っています。あなたの素朴な再帰的な実装に勝つのは事実ですが、その実装は、動的プログラミングを使った反復実装と本質的に同じように改善することができます。 –