当我们使用迭代方法查找斐波那契数列中的第n个数字时,我们运行一个for循环(n-2)次。这意味着时间复杂度将是O(n)。这是否正确,或者它实际上会根据输入的位数而成为伪多项式,就像背包问题一样?
当我们使用迭代方法查找斐波那契数列中的第n个数字时,我们运行一个for循环(n-2)次。这意味着时间复杂度将是O(n)。这是否正确,或者它实际上会根据输入的位数而成为伪多项式,就像背包问题一样?
这里,我假设Fib(n)是一个计算斐波那契数列的迭代程序。可能类似于以下内容:
def Fib(n):
a, b = 0, 1
for _ in xrange(n):
a, b = b, a + b
return a
是的,它实际上是O(n)。背包问题的时间复杂度非常奇怪,是一个例外。