初识递归算法
- 作者: Wyt
1. 什么是递归
概念:
在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。
"递" "归"
我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。
可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。(摘自知乎的一个回答)
嵌套: 函数嵌套允许在一个函数中调用另外一个函数
2. 为什么要用到递归
递归可以简化代码的书写,但不能提高效率,还有点浪费空间。 (递归的本质是栈存储)
3. 递归的本质
递归的过程就是出入栈的过程。
4. 怎么用递归书写代码
- 斐波那契数列
定义:
F(0) = 0, F(1) = 1
F(N) = F(