【问题标题】:Are all problems that are solvable with recursion solvable with loop?所有可以用递归解决的问题都可以用循环解决吗?
【发布时间】:2012-08-21 23:52:27
【问题描述】:

所有可以用递归解决的问题都可以用循环解决,反之亦然。

这个说法是正确的还是完全被证明的? 有时,使用递归会导致堆栈溢出。 如果陈述是正确的。我们最好使用循环。

谢谢

【问题讨论】:

  • “用循环求解”通常是指使用堆来存储堆栈而不是线程的调用堆栈。
  • 这不是重复的 - 这个要求递归 -> 迭代,另一个要求迭代 -> 递归
  • @ltjax - 答案是相同的 - 他们可能会要求不同的方向,但另一个问题中的答案提到递归和迭代是等价的。
  • @birryree 我相信 SO 政策是两个具有相同答案的不同问题不被视为重复。

标签: algorithm loops language-agnostic recursion


【解决方案1】:

是的。 Loop + Stack 将解决所有递归问题。

毕竟,编译器是在内部完成的。递归只不过是将数据压入堆栈,然后从堆栈中弹出,由编译器完成。

【讨论】:

    【解决方案2】:

    通常,相应的迭代(循环)解决方案需要同样多的存储空间,但需要明确管理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-05
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      相关资源
      最近更新 更多