递归算法概念是函数调用自己来实现的某种功能,按以下方法理解递归你会恍然大悟。
1.递归是高中数学中的数列那一章讲的内容。数列这章讲了一个概念叫递推公式:如果已知数列的第1项(或前几项),且从第二项(或某一项)开始的任一An与它的前一项An-1(或前几项)间的关系可以用一个公式来表示,那么这个公式就叫递推公式,递推公式是给出数列的一种方法。
2.例如斐波那契数列的递推公式就是:An=An-1+An-2(n>2,a1=1,a2=1)
3.那么现在如果想用递归的方式表示斐波那契数列即可定义函数f(n):当n>2时f(n)=f(n-1)+f(n-2);当n=1时f(n)=1,当n=2时f(n)=1;
private static int fibonacciRe(int i) {
if(i == 1 || i == 2)
return 1;
else if(i>2)
return fibonacciRe(i-1)+fibonacciRe(i-2);
else
return 0;
}
4.解释:其实说白了递归函数就是一个递推公式,只要递推公式往纸上一写,把项A替换成函数名字,把n替换成函的参数即可,最后用if判断终止条件,一个递归就完成了。