我試圖找出我的分裂程序的運行時間,計算程序運行時間?
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 2012-02-19 16:27:04
@月球:是的。 「4在前面」導致公式成爲「力量」。請注意,你的分析得到了'T(n)= 4^k * T(n/2^k)'m,這導致你達到'4 * 4 * ... * 4' [logn times]。如果它是「3在前面」 - 它會是'3 * 3 * ... * 3' [logn次數],它是'3^logn'[大於n',小於'n^2' ] – amit 2012-02-19 16:32:05