多重梦境之递归函数

Posted Respect@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多重梦境之递归函数相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
定义:在函数的内部,直接或者间接的调用自己。

要点:
再定义递归函数时,一定要确定一个“结束条件”!!!

使用场合:
处理一些特别复杂的问题,难以直接解决。
但是,可以有办法把这个问题变得更简单(转换成一个更简单的问题)。

盗梦空间
在这里插入图片描述
设计递归函数的要点:
把问题拆解成问题本身, 但是拆解后的问题的”规模”更小, 或者难度更低.
经典实例:
1)斐波那契数列
2)汉诺塔问题

斐波那契数列
1,1, 2, 3, 5, 8, 13, 21, …
计算第n个数是多少?

f(n)
当n >2时,f(n) = f(n-1) + f(n-2)
当n=1或n=2时, f(n)就是1

f(8) = f(7) + f(6)

int fib(int n) {
int s;

if (n == 1|| n == 2) {
return 1;
}

s = fib(n-1) + fib(n-2);
return s;
}

递归函数的缺点:
性能很低!!!
实际开发中, 极少使用!

递归函数的调用过程

在这里插入图片描述

以上是关于多重梦境之递归函数的主要内容,如果未能解决你的问题,请参考以下文章

算法之快速排序(递归实现)

Python之递归函数

python之递归函数

Python之递归函数

python函数之递归

2017寒假零基础学习Python系列之函数之 递归函数