algorithm - 是否存在只能递归或只能迭代解决的问题?

标签 algorithm loops recursion

有没有什么问题只能用递归或迭代来解决。如果不是,是否可以将所有算法都表示为具有相同复杂度的任一形式?

PS:我说的是理论上的复杂性(O、theta 和 omega),而不是在现实世界系统中实现时所花费的时间。

最佳答案

Recursion and iteration are equally expressive: recursion can be replaced by iteration with an explicit stack, while iteration can be replaced with tail recursion.[1]

所以不,每个可以迭代解决的问题都可以用递归解决,反之亦然。如果进行 1:1 转换,Big-O 表示法保持不变。但是,与递归算法相比,使用迭代算法仍然更好,因为您可以做不同的事情。

1:https://en.wikipedia.org/wiki/Recursion_(computer_science)#Recursion_versus_iteration

关于algorithm - 是否存在只能递归或只能迭代解决的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722566/

相关文章:

python - 用while循环python写阶乘

c - 为什么 BSS 中静态数组的第二个循环比第一个更快?

algorithm - 在设置动态规划时遇到问题

python - 扁平化字典

algorithm - 找到一个重复偶数次的数字,而所有其他数字重复奇数次

c# - 添加访问列表

javascript - CasperJS 循环或遍历多个网页?

C - 不循环地递归查找子集和

python - 在图中找到最短的三角形

java - 为什么我的分区算法返回 ArrayIndexOutOfBoundsException