递归和迭代的表达能力是一样的:递归可以用显式调用栈的迭代代替,而迭代可以用尾递归代替。哪种方法更合适,取决于所考虑的问题和所使用的语言。在命令式编程中,迭代是首选,特别是对于简单递归,因为它避免了函数调用的开销和调用栈管理,但在多重递归问题时通常还是要用到递归方法。相比之下,在函数式语言中,递归是首选的,因为尾递归优化只带来很少的开销。使用迭代实现算法可能不容易实现。 | 递归和迭代的表达能力是一样的:递归可以用显式调用栈的迭代代替,而迭代可以用尾递归代替。哪种方法更合适,取决于所考虑的问题和所使用的语言。在命令式编程中,迭代是首选,特别是对于简单递归,因为它避免了函数调用的开销和调用栈管理,但在多重递归问题时通常还是要用到递归方法。相比之下,在函数式语言中,递归是首选的,因为尾递归优化只带来很少的开销。使用迭代实现算法可能不容易实现。 |