是否有任何问题只能通过递归或迭代解决?

时间:2016-04-19 15:15:51

标签: algorithm loops recursion

是否存在任何只能在递归或迭代中解决的问题。如果没有,所有算法都能以具有相同复杂度的任何一种形式表示吗?

PS:我在谈论理论上的复杂性(O,theta和omega),而不是在实际系统中实现的时间。

1 个答案:

答案 0 :(得分:6)

  

递归和迭代同样具有表现力:递归可以用带有显式堆栈的迭代替换,而迭代可以用尾递归替换。[1]

所以不,每个可以迭代求解的问题都可以通过递归来解决,反之亦然。如果您进行1:1转换,则Big-O表示法保持不变。然而,在递归上使用迭代算法仍然会更好,因为你可以做不同的事情。

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