-1
私はdivide and conquerメソッドを使ってpow(a、n)を見つけるためにこのコードを書いています。私はこのコードの大きな複雑さについてはわかりません。それはnかnlog nですか?このコードの実行時間は?それはn log nかnですか?
pow(a,n)
{
if n->1 return a
i<-floor(n/2)
j<-ceil(n/2)
return pow(a,i) * pow(a,j)
}
また、この場合の乗算である合成ステップの複雑さは何ですか?それは1かnか?
は、問題をn/2に分割することを意味しません。これは、ログnレベルを意味し、各レベルの作業ではn/2です。それはそれをnlognにしますか? –
p(1,8)* p(1,4)、p(1,2)* p(1,2)* p(1,2)のときにコール数を考慮してください。 (1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,2) p(1,1)* p(1,1)となる。呼び出しの総数は1 + 2 + 4 + 8 = 15です。 – jq170727
各レベルでの作業は、呼び出しごとにO(1)作業しか行っていないため、n/2ではありません。 – templatetypedef