私は再帰アルゴリズムの時間計算量を計算しようとしています。ここで私が見てきた擬似コードです:リカバリーアルゴリズムの時間計算量を計算する
long pow(long x, int n) {
if (n == 0)
return 1;
if (n == 1)
return x;
if(isEven(n))
return pow(x, n/2) * pow(x, n/2);
else
return x * pow(x * x, n/2);
}
ISEVENは単にそれに渡された整数が偶数かではなく、この例のポイントのために、一定の時間で動作しているか否かを判定する。
したがって、n = 0またはn = 1の場合、これは以下のように一定時間動作を行います。 f(n)= C0。 しかし、n> 1の場合、f(n)= f(n-1)+ f(n-1)+ C1となる。 )+ 1、nが奇数の場合、正しい?または、nが偶数のときf(n)= f(n/2)+ f(n/2)+ C1、nが奇数のときf(n)= f(n/2)
私はたくさんの例を見てきました。 Hereは非常に参考になった1つです。私の問題は、nが偶数であるときに2つの再帰呼び出しがあることに由来します。私はここで何をすべきかを完全には分かっていません。誰かが正しい方向に私を指すことができるなら、私は本当にそれを感謝します。
StackOverflowを歓迎し、私たちが通常ここで行う3つのことを思い出させてください:1)あなたが助けを受けても、あなたの専門分野で**質問に答えてください** ['FAQを読む' ](http://tinyurl.com/2vycnvr)3)あなたが良いQ&Aを見たら、それらを[灰色の三角形を使って](http://i.imgur.com/kygEP.png)に投票し、信頼性は、ユーザーが知識を共有して得た評判に基づいています。また、あなたの問題をよりよく解決する答えを受け入れることを覚えておいてください。もしあれば、[チェックマークを押してください。](http://i.imgur.com/uqJeW.png) –
この初心者の質問はよく聞かれます。 – sharptooth