java斐波那契数列(Fibonacci sequence)的三种方式:递归,备忘录,动态规划

java斐波那契数列(Fibonacci sequence)的三种方式:递归,备忘录,动态规划

1.最常使用的是递归,就是从上往下寻找答案,然后在返回来。

2.备忘录也是从上往下,只是去掉了递归中重复计算的部分,因为它使用一个容器来装已经计算出的值,这里就多一个判断,如果计算过该式子,就直接取结果,如果没计算过才计算出来。

3.动态规划就是从下往上依次算出结果。

这个从下往上和从上往下解释如下:(我拿递归和动态规划来说明这个顺序问题)

例如:

f(4)=f(2)+f(3);

f(3)=f(1)+f(2);

f(2)=1;

f(1)=1;

求解f(4)

如果我们顺序直接就是从f(4)开始往下一步一步求解到f(1)(再从f(1)往回计算出来f(4)),就是递归

如果我们顺序直接就是从f(1)开始往上一步一步求解到f(4),就是从下往上,就是动态规划

1.递归:

2.备忘录

3.动态规划:

猜你喜欢

转载自blog.csdn.net/Handsome2013/article/details/82491041