【发布时间】:2014-09-16 11:47:12
【问题描述】:
请不要将此问题与复杂度为 2^n 的递归斐波那契混淆。
这是我使用的斐波那契迭代代码:
def f(n):
a, b = 0, 1
for i in range(0, n):
a, b = b, a + b
return a
我试图找出复杂性,我得到了 T(n) = n * 4 + 4 = 4n + 4,但我得到的图根本不是线性的,更像是一个 n^2。例如:
print(timerf(250000)/timerf(50000))
这给了我 25 左右的结果。
我画了一个图:
这表明斐波那契迭代方法的复杂度应为 n^2。这要怎么解释?
【问题讨论】:
标签: algorithm time-complexity fibonacci