1.递归的定义
函数在调用另一个函数的过程中直接或间接地调用该函数自身,直接调用称为直接递归调用,间接调用称为间接递归调用。
直接递归调用 eg : ... f( ) —>f( ) ...
间接递归调用 eg : ... f1( ) —>f2( ) —>f1( ) ...
2. 使用递归调用解决问题的方法(有限递归)
-
原有的问题能够分解为一个新问题,而新问题又用到了原有的解法,这就出现了递归;
-
按照这个原则分解下去,每次出现的新问题是原有问题的简化的子问题;
-
最终分解出来的新问题是一个已知解的问题;
3.递归调用过程(两阶段)
-
递推阶段:将原问题不断地分解为新的子问题,逐渐从未知的向已知的方向推测,最终达到已知的条件,即递归结束条件,这时递推阶段结束。
-
回归阶段:从已知条件出发,按照“递推”的逆过程,逐一求值回归,最终到达“递推”的开始处,结束回归阶段,完成递归调用。
4.递归例子:求n!
-
算法分析:n! = n×(n-1)×(n-2)×...×1= n(n-1)!
-
递归公式:

文章介绍了递归的概念,包括直接和间接递归,并通过求解阶乘问题展示了递归的使用方法,分为递推和回归两个阶段。同时强调了使用递归需设置正确结束条件,虽然递归在某些情况下解决问题有独特优势,但通常牺牲了执行效率,因此不建议频繁使用。最后,文章提供了两种不同的C语言递归实现代码示例。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



