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

如何理解递归(图解)

作者: 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 的执行结果也可以看出其具体的返回顺序

相关文章

  • 如何理解递归(图解)

    一 概念 递归,就是在运行的过程中调用自己。。 百度百科定义非常废话,有没有更直观的解释呢? 二 递归 相信大家应...

  • 第十节-递归

    这节课的思路主要是如何理解递归 --> 递归的三个条件 --> 如何编写递归 --> 递归要注意的点 --> 怎么...

  • 如何理解递归(一)

    递归是程序运行时的一种现象,也是解决某些特定问题时较迭代算法来说更自然更优雅的代码组织方式。作为程序员工作了多年后...

  • leetcode 46 全排列(python)

    递归+交换 递归+跳过已选数字 第一种方法的图解,有空补

  • 递归

    如何理解“递归”? 一个非常标准的递归求解问题的分解过程,去的过程叫“递”,回来的过程叫“归”。基本上,所有的递归...

  • CSI讲义8:理解递归

    所有的计算都是递归;要理解递归首先要理解递归。 程序设计思想之一“递归”历来是同学们的理解难点。据说,**要理解递...

  • 图解递归算法

  • 算法图解-递归

    1. 递归指的是调用自己的函数递归函数有两部分:基线条件(base case)和递归条件(recursive ca...

  • 《图解算法》——递归

    1.递归 假设你在祖母(老外都喜欢举祖母的例子)的阁楼中翻箱倒柜,发现了一个上锁的神秘手提箱。 祖母告诉你,钥匙很...

  • 翻转链表

    LintCode 35 题 使用 python 语言实现: 图解递归方法:

网友评论

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

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