首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >递归的优点和缺点是什么?

递归的优点和缺点是什么?
EN

Stack Overflow用户
提问于 2011-03-10 02:55:35
回答 10查看 129.6K关注 0票数 32

关于在排序算法或任何算法中使用递归而不是非递归方法,它的优缺点是什么?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-03-10 03:01:16

在大多数情况下,递归速度较慢,并且会占用更多的堆栈。递归的主要优点是,对于像树遍历这样的问题,它使算法变得更容易或更“优雅”。看看下面的一些比较:

link

票数 34
EN

Stack Overflow用户

发布于 2011-03-10 03:01:58

递归意味着一个函数重复调用

它使用系统堆栈来完成其任务。由于堆栈使用后进先出方法,并且当调用一个函数时,受控对象被移动到定义函数的位置,该函数以某个地址存储在内存中,该地址被存储在堆栈中

其次,它降低了程序的时间复杂度。

虽然有点离题,但有点相关。必读。:Recursion vs Iteration

票数 15
EN

Stack Overflow用户

发布于 2011-03-10 03:12:50

所有的算法都可以递归定义。这使得可视化和证明它变得更加容易。

有些算法(例如Ackermann Function)不能(很容易)迭代地指定。

如果不能执行tail call optimization,那么递归实现将比循环使用更多的内存。虽然迭代可能比无法优化的递归函数使用更少的内存,但它的表达能力有一些限制。

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

https://stackoverflow.com/questions/5250733

复制
相关文章

相似问题

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