首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候以及为什么递归的性能比迭代差?

什么时候以及为什么递归的性能比迭代差?
EN

Stack Overflow用户
提问于 2012-02-01 11:25:38
回答 2查看 465关注 0票数 3

什么时候以及为什么递归的性能比迭代差?

最近我在面试时被问到这个问题。我的答案是,当递归的深度很大时,递归的性能会更差。面试官似乎在期待一个不同的答案。有没有人能多解释一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-01 11:33:45

可能有很多原因;有一些原因浮现在脑海中:

  • 递归深度很大递增的堆栈使用时间用于卷积和展开堆栈,堆栈消耗的内存较少,而迭代使用不使用更多资源(包括堆栈)的跳转命令
  • 递归函数保留大量状态(例如局部变量),直到递归完成(另一方面,每次迭代都会丢弃局部变量),再次为后续的递归

留下较少的可用内存

票数 4
EN

Stack Overflow用户

发布于 2012-02-01 11:40:02

根据您所说的,您已经回答了问题的When部分:

当递归深度较大时为

但没有回答为什么的部分,所以你只回答了面试官问题的一半。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9090339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档