【发布时间】:2013-09-26 20:30:30
【问题描述】:
如何估计第 N 个斐波那契元素的以下算法的完成时间?
private static double fib(double nth){
if (nth <= 2) return 1;
else return fib(nth - 1) + fib(nth - 2);
}
【问题讨论】:
-
您的意思是复杂性?还是实际时间?该算法在
O(phi^n)时间运行。 -
我需要实际时间(计算第 N 个元素需要多长时间)。如何计算这个 O(phi^n) 例如第 200 个斐波那契数?
-
为元素 1..10 运行它,然后使用它是
O(phi^2)的事实进行推断。这不会很准确。这是练习吗? -
是的。我在 6452 毫秒内获得了第 45 名;和 10 毫秒。如何计算第 200 次的时间?
-
为什么不使用closed form?