Dynamic Programming Fibonacci algorithm

后端 未结 3 874
孤街浪徒
孤街浪徒 2021-01-25 02:40

I\'m working on an algorithm to calculate a Fibonacci number and got the pseudo code for it but I can\'t figure out how much time it takes to run. I think it runs at O(n) but no

相关标签:
3条回答
  • 2021-01-25 03:02

    Yep. The big giveaway is that you have a constant number of operations per loop and the size of your loop is linear against the size of n.

    A more space-efficient solution exists, however, since you don't particularly care about any numbers other than the last two. Try that next!

    0 讨论(0)
  • 2021-01-25 03:21

    You are correct that this takes O(n) as you are just counting sequentially from 2 to n to fill your array. If you were doing some sort of lookup for each of the i-1 and i-2 numbers, that could increase complexity, but the way you have written it, you are calling a direct address for each of those values.

    0 讨论(0)
  • 2021-01-25 03:23

    Iterative solution to find the nth fibonnaci takes O(n) in terms of the value of n and O(2^length(n)) in terms of the size of n ( length(n) == number of bits to represent n). This kind of running time is called Pseudo-polynomial. However, if recursive method is used to find the fib of n, then it will take exponential time in terms of the value(O(2^n)). But this can be reduced by using dynamic programming approach to solve the fib of n.

    0 讨论(0)
提交回复
热议问题