我试图找出我的分裂程序的运行时间,计算程序运行时间?
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