【发布时间】:2015-09-20 07:59:18
【问题描述】:
我在理解一件事时遇到了问题,即当递归涉及如此多的空间以及迭代算法和递归算法的时间复杂度相同时,除非我对其应用动态编程,那么我们为什么要使用递归,是仅仅是为了减少我们使用它的代码行数,因为即使是为了实现递归,在将函数控制权从一个调用传递到另一个调用期间,也必须保存整个 PCB?
虽然我看过很多与它相关的帖子,但我仍然不清楚实现递归优于迭代的主要优势是什么?
【问题讨论】:
-
你看过这个吗? stackoverflow.com/a/2185554/1915854 实现递归算法通常比迭代算法更容易,在迭代算法中,您通常必须模拟架构为您提供的堆栈,而无需额外编码。
-
看看线程Quicksort : Iterative or Recursive。这是讨论迭代 VS 递归的特定情况,正如基准所显示的那样 - 使递归与递归一样高效并非易事,因为机器的堆栈比编程堆栈的效率要高得多。
标签: algorithm