怎么理解递归中一定包含迭代这句话

x8335533 2018-06-02 05:48:24
今天偶尔想到这句话,以前学习的时候并没有深入理解。
我知道递归和迭代的具体概念,但是为什么说递归就一定包含迭代呢?百度了一下也没有具体解释
谁能帮我解释一下,最好别复制粘贴,谢谢!
...全文
1024 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-06-02
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
丁劲犇 2018-06-02
  • 打赏
  • 举报
回复
把函数调用过程中的堆栈操作,和函数内部的操作一起来看,那整体就是迭代。迭代的对象是上下文,只是操作系统帮我们完成了。
一个递归算法一般可以写成一个迭代方法的样子,一个函数内完成。只是人为要维护一个堆栈,一堆存储临时变量的结构体。递归的层数比较深的情况下,修改为迭代算法,效率很高。
zhao_miao 2018-06-02
  • 打赏
  • 举报
回复
递归是函数重复调用自己,每一次调用这个函数,重复的动作称为一次"迭代",递归是自己调用自己的过程,所以一定会有迭代。 有的简单代码,调用自己少量的次数就可以完成,可以忽略迭代所花费的时间。 但是有的代码,比如要打印斐波那契数列的第n项,就需要重复多次的调用自己,迭代的时间花费太长,所以不建议用递归完成。 https://blog.csdn.net/zhao_miao/article/details/80158979
自信男孩 2018-06-02
  • 打赏
  • 举报
回复
递归一定能用迭代代替?
ckc 2018-06-02
  • 打赏
  • 举报
回复
迭代在这里差不多的意思就是用一个数据计算得到下一步数据 递归里确实会有类似的计算过程,所以有人说递归里必然有迭代吧

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧