目录
1.方法递归调用
基本介绍
简单来说,递归就是自己调用自己。
例如:
递归是在函数里自己调用自己
递归能解决什么问题?
各种数学问题,8皇后,汉诺塔等。
八皇后问题
recursion是递归的意思。
任一两个皇后都不能处于同一行,同一列,或者同一斜线上。
递归举例
递归时,每调用一次函数,就会在栈空间开辟一块空间,当开辟的那块空间执行完,就回到上一层继续执行。
递归重要规则
每执行一个方法就会创建一个新的受保护的独立空间(栈空间)
练习
斐波拉契数列就是除了第一个和第二个数以外,之后的数都是前两个数之和
2.递归调用应用实例-迷宫问题
似乎是dfs,深度优先算法
按照下右上左的顺序在寻路。
不同的搜索策略使得得到的路线不同
如果是上右下左的话就会是这样。
3.递归调用实例-汉诺塔
小盘上面不能放比它大的圆盘。
4.递归调用实例-八皇后问题
使用栈来解决。