1
我有一個任務,他們給我一個遞歸斐波那契算法,並要求返回一個時間。我用.SystemCurrentMilis完成了,我在下面發佈了我的代碼,但測試人員說需要很長的時間來計算時間,所以我認爲我必須給他們一些時間,因爲執行功能和時間太長。希望你的幫助球員。如何使函數timetocompute在任何即將到來的工作中更快地工作。如何獲得斐波那契遞歸的時間
import java.math.BigInteger;
import java.math.BigDecimal;
public class Fibonacci {
public BigDecimal timeToComputeRecursiveFibonacci(int n) {
long startTime = System.currentTimeMillis();
recursive(n);
long finishTime = System.currentTimeMillis();
long tempTime = finishTime - startTime;
BigDecimal usedTime = BigDecimal.valueOf(tempTime);
return usedTime;
}
public BigInteger recursive(int n) {
if (n <= 1)
return BigInteger.valueOf(n);
return recursive(n - 1).add(recursive(n - 2));
}
}
動態規劃是前進的道路!想想當n = 3和n = 4時會發生什麼,你調用recursiveF方法多少次? – SMA
我在想這個話題,我認爲如果有n = 3次方法調用比n多1次。我希望我的權利,但我不明白它如何幫助我。我在網上發現它的O(2^n),但是它的返回時間我怎麼不明白。 – DwaydeWade
我應該警告你,如果你的老師發現這個問題,你可能會面臨剽竊的指責。您應該創建一個[** Minimal **,完整且可驗證的示例](http://stackoverflow.com/help/mcve),它可以演示您的問題,而不會泄露太多的分配解決方案。 –