【发布时间】:2021-05-30 11:51:42
【问题描述】:
假设我们有两个版本的递归函数,其中一个是尾递归的。如果使用的语言没有尾调用优化,使用函数尾递归有什么好处吗?据我了解,如果没有优化,函数的每个版本(尾部和非尾部)将使用相同数量的堆栈帧(在大多数情况下)。
我知道在某些情况下,例如斐波那契函数,即使没有尾调用优化,使用尾调用也会更有效,因为它避免了重复调用。但是,如果函数的两个版本都没有进行双重调用怎么办?尾递归函数会更高效吗?
【问题讨论】:
标签: recursion optimization tail-recursion