【发布时间】:2011-02-08 17:11:19
【问题描述】:
我知道递归有时比循环干净得多,而且我并没有问什么时候应该使用递归而不是迭代,我知道已经有很多问题了。
我要问的是,递归永远比循环快吗?在我看来,你总是能够优化循环并让它比递归函数执行得更快,因为循环不存在不断设置新的堆栈帧。
我正在寻找在递归是处理数据的正确方法的应用程序中递归是否更快,例如在某些排序函数、二叉树等中。
【问题讨论】:
-
有时迭代过程或某些重复的封闭式公式需要几个世纪才能出现。我认为只有在那些时候递归更快:) lol
-
就我自己而言,我更喜欢迭代。 ;-)
-
Recursion or Iteration? 的可能重复项
-
@PratikDeoghare 不,问题不在于选择完全不同的算法。您始终可以将递归函数转换为使用循环的功能相同的方法。例如,this answer has the same algorithm in both recursive and looping format。通常,您会将递归函数的参数元组放入堆栈,压入堆栈以调用,从堆栈中丢弃以从函数返回。
标签: performance loops recursion iteration