私はこれにかなり新しいです私の分割プログラム、プログラムの実行時間を処理していますか?
void splitX(int x) {
if (x<=1) {return x;};
splitX(n/2);
System.out.println("splitting in progress");
splitX(n/2);
splitX(n/2);
splitX(n/2);
}
の運転時間を仕事にしようとしています、これはこれまでにやっていることです。
T(n) = 4T(n/2)
= 4^2T(n/2^2)
= 4^3T(n/2^3)
= 4^kT(n/2^k)
= O(log n)
私は、正しい軌道に乗っアムイムは少し混乱してき、また、あなたは、印刷ラインを考慮しなければならないのですか?
これに感謝します。正面の4人がどのように違いを生み出すか説明できますか?例えば3に変更すると、実行時間を変更できますか? – Lunar
@月:はい。 「正面の4」は数式を「力の」ものにします。あなたの解析には '4 * 4 * ... * 4' [logn times]につながる' T(n)= 4^k * T(n/2^k) 'mがあります。それが "3"であれば、 '3 * 3 * ... * 3' [logn times]となり、' 3^logn' [より大きく、 'n^2]より小さくなります。 ] – amit