1
int foo(int n)
{
if(n==0)
return 1;
int sum = 0;
for(int i = 0;i < n;i++)
sum += foo(n-1);
return sum;
}
私は最近、ランダウの記号を学んでいます。 は、誰かが私にビッグO記法を使って、どのようにこの関数の実行時間を提示することによって、この再発関数の実行時間を決定する方法についてのアイデアを与えることができます。再発関数の実行時
私はそれを想定し、N = 3とし、あなたが言及したこと再帰木のですか? http://imgur.com/a/lusID – CDY
いいえ、しかし近いです。 forループについて考えると、再帰呼び出しsum + = foo(n-1)はループ変数iに依存しません。したがって、ツリーの各ノードではn回分岐しますが、各リーフはn-1で呼び出されます。 http://imgur.com/a/K9g8z – gue
ありがとう、私はそれを得た。あなたが説明することは非常に理解しやすいです。 – CDY