算法之递归
Posted jiangxiaoxian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法之递归相关的知识,希望对你有一定的参考价值。
我直接用王争老师的例子了。
这是典型的递归例子,表达式如下
int f(int n) {
if (n == 1) return 1;
return f(n-1) + 1;
}
解释下这段代码,如果你是第五排
f(5) -> f(5-1) + 1
-> (f(4-1) + 1) + 1
-> ((f(3-1) + 1) + 1) + 1
-> (((f(2-1) + 1) + 1) + 1) + 1
-> (((1+ 1) + 1) + 1) + 1
-> 5
递归要满足三个条件:
1.一个问题可以分解为几个子问题的解
2.子问题与其父问题的解决思路一样
3.存在递归的终止条件
例子中的终止条件是 f(1) = 1即第一排的人知道自己是第一排,否则无法用递归。
以上是关于算法之递归的主要内容,如果未能解决你的问题,请参考以下文章