通过动态编程查找斐波那契数-算法

时间:2018-09-15 18:34:50

标签: algorithm fibonacci

我从这里读了投票率最高的答案:Difference between Divide and Conquer Algo and Dynamic Programming, 但是我没有足够的声誉来发表评论,所以我不得不发表一个新问题。

我的问题是:为什么总时间O(n)?

据我了解,从大小为n的未排序数组中查找元素会花费时间n。

在找到斐波那契数的情况下,检查备忘录中是否存在数字的最坏情况可能要花费n次,因此整个算法将重复n次,每次搜索一次该数字,这花费了n次时间。那么总时间应该是O(n ^ 2)而不是O(n)。

有人可以指出我误解了什么吗?谢谢

1 个答案:

答案 0 :(得分:0)

由于记忆,渐近复杂度变为O(n)。

记忆斐波那契的搜索不是O(n),考虑到您使用的是数组而不是LinkedList,它的搜索结果是O(1)。