美文网首页
如何理解递归(图解)

如何理解递归(图解)

作者: Zeaone | 来源:发表于2019-01-06 14:54 被阅读0次

    一 概念

    递归,就是在运行的过程中调用自己。。

    百度百科定义非常废话,有没有更直观的解释呢?

    二 递归

    相信大家应该都有一个递归的概念,但是不知道递归具体是怎么运行的,先来看一段代码,斐波那契数列(python版):

    图1 代码及执行结果

    解释一下代码:如果num1 跟num2的和大于300,则结束递归,否则一直递归,else中递归传入的参数也很好理解,就是斐波那契数列需要相加的两个数,因为斐波那契数列是这样的1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610 ..........(只看三个数的话,第三个数值为前两个数的和)那么这个递归是如何执行的呢?画图说明:

    图2 递归执行图解

    从图上我们可以看到,每次递归相当于重新走一次函数,而递归的返回,并不是一次性直接返的,而是当递归的最后一次执行符合返回条件之后,将结果返回到上次调用的地方,根据图上的来说,是从 4 返回到了3 ,从3返回到2,一直返回到 调用的 fibonacci(1,1)

    从 图 1 的执行结果也可以看出其具体的返回顺序

    相关文章

      网友评论

          本文标题:如何理解递归(图解)

          本文链接:https://www.haomeiwen.com/subject/akklmftx.html