女童凉鞋白裤袜:有人能帮我解释一下什么是递归法吗?

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 00:01:16

打个比方吧,递归法好比是一个军队要通过一个迷宫,到了第一个分岔口,有3条路,将军命令3个小队分别去探哪条路能到出口,3个小队沿着3条路分别前进,各自到达了路上的下一个分岔口,于是小队长再分派人手各自去探路——只要人手足够(对照而言,就是计算机的堆栈足够),最后必将有人找到出口,从这人开始只要层层上报直属领导,最后,将军将得到一条通路。所不同的是,计算机的递归法是把这个并行过程串行化了。

递归就是把问题交还给问题本身。
比如常见的。 n!(阶乘) 就是一种递归。

用递归处理阶乘类问题很好用,如:
int f(int n)
{
n! = n*f(n-1);
}
这就是一个递归的应用,递归的思想是,以阶乘为例,把n!转换成n*(n-i)!,(n_1)!比n!好算,然后(n-1-1)!比(n-1)!好算,以次类推直至解决问题。

递归不是 算法,他是一种思想,正是因为某个算法的指导思想是递归的,所以才被称为递归