美文网首页
从递归到迭代

从递归到迭代

作者: 不爱钱的张师傅 | 来源:发表于2019-02-09 00:14 被阅读0次

从递归到迭代。
学过 C 语言的都知道递归函数。
运行起来类似:


递归运行图

递归运行代码时,必须运行到最后一次,才能依次返回。
这样的话,上图可以看作是内存开销。递归几次,就多开几个内存空间,地主家也耗不起啊。
我们不想花费这么大的空间去做。于是我们有了其它方法,比如递推,这里不说。
而 python 中,使用的是迭代器。
如图:


yield

运行到红线处,本该进行递归函数的调用了,我们使用 yield
实现,

  1. 保存当前内容,
  2. 返回当前结果。
  3. 等待下一次调用

这里和递归不同的是,下一次递归调用时,yield 使用的还是这块空间。而递归是新开辟一块空间。
所以迭代在代码上,还需要外部控制,才能获取到下一个结果。
递归只需要一行代码。

fun(n)

而迭代要外部控制

f = fun(n)   # f 获取的是迭代器

while True:
    next(f)

需要一直 next() 才能得到最后一个结果。

也许有不当之处,望指出。

相关文章

  • 从递归到迭代

    从递归到迭代。学过 C 语言的都知道递归函数。运行起来类似: 递归运行代码时,必须运行到最后一次,才能依次返回。这...

  • 递归算法

    To iterate is human, to recurse, divine.人理解迭代,神理解递归。 什么是递...

  • 宇宙的奥秘:递归、分形、循环

    递——是传递,归——是回归。那么从传递开始回归到传递的开始,就是从一个地方出发,回到了出发的地方,就完成了一次循环...

  • 唯一路径个数从递归到迭代

    唯一路径个数从递归到迭代 标签(空格分隔): algorithm 唯一路径个数 唯一路径个数,题目大意,给定一个的...

  • 从北归到南回

    如果把人生比作是一条平稳航行的大船,而所有的人都在这艘大船上。虽然温暖舒适但是太过拥挤,这时有的人会不甘愿这样的生...

  • 算法-二叉树算法总结

    二叉树算法总结 1 二叉树的遍历 1.1 前序遍历 递归 迭代 1.2 中序遍历 递归 迭代 1.3 后序遍历 递...

  • 从码字回归到写作

    相信很多喜欢写作的人都有一个愿望,靠笔下的文字养活自己,这也一直是我的梦想。 我憧憬着能每日睡到自然醒;能在灵感爆...

  • 2020-05-12 三

    cocopod 多人合作最好保持版本一致,不然容易产生冲突! 递归:自己调用自己 迭代:结果作为值进行下次运算 递...

  • 从线上回归到线下

    001 从线下到线上 很多企业都希望能够往互联网上靠,于是出现了互联网+金融、互联网+零售等等业态,也出现了很多做...

  • 从线性回归到逻辑回归

    线性回归 线性回归之所以称为线性回归,是由于其目标是拟合一条直线来对样例进行分类。线性回归试图学到和,预测值为:线...

网友评论

      本文标题:从递归到迭代

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