我们是否应该将递归调用堆栈视为辅助space?

Should we consider recursive call stack as auxiliary space?

我们是否应该将递归调用堆栈视为程序使用的辅助space?我觉得应该只在计算space复杂度的时候考虑,而不是在计算辅助的space.


辅助Space是算法使用的额外space或临时space。 Space 算法的复杂度是算法相对于输入大小的总 space。

如果您实际上在外部调用中依赖变量——如果您在最内层调用后再次需要它们 returns——那么是的,它们应该包含在辅助 space 中。

但如果你只有 tail calls,而你的堆栈增长的唯一原因是你的编译器不支持尾调用优化,那么我认为我不会考虑在辅助中space 的(抽象) 算法,即使您的实际 实现 最终会占用 space。