算法优化:递归算法的优化策略
在处理算法问题时候,用的非常多的一种策略就是递归算法了。但是递归算法虽然简单有效,但是该算法的算法效果总是有点差强人意。本文主要讲述从两个方向优化递归算法,希望本文能给读者一些thinking。(持续更新中…)
文章目录
一、递归算法介绍
示例:递归算法我又把它称为迭代算法,因为大致思路都差不多(迭代:从已知推未知 递归:从未知回溯到已知,再推未知)。都是不断地重复若干个较为简单的问题,最终得到理想结果的一种算法思路。(下文中并未严格区分递归和迭代)
二、递归算法的分析及优化
1.1递归算法举例:斐波那契
首先先拿斐波那契数列来举例说明(示例):
public int Fibonacci(int n){
if(n<0)return 0;
if(n==0)return 1;
if(n==1)return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
此时该算法的公式为:F(n)=F(n-1)+F(n-2)+1ÿ