不考虑堆栈调用的递归斐波那契算法的空间复杂度是多少?

问题描述 投票:0回答:1

如果我们不考虑堆栈调用内存,那么递归fibnonacci会消耗多少空间?

我读了它here,它表示为0(N),但我在考虑空间时是否应该包括堆栈存储器感到困惑。

algorithm recursion time-complexity space-complexity
1个回答
1
投票

[不考虑堆栈调用内存,它再次为O(n),因为您传递的变量的副本是在新函数调用中创建的,并且这在n个函数中发生了n次,因为递归树在任何时候的最大高度都是n或最大电平为n +1,因此我们可以渐近地将其表示为O(n)。

在再次采用自底向上方法的情况下,我们使用数组存储过去的值,从而也成为O(n)空间(但是以一种巧妙的方式,我们可以使自底向上方法仅使用3个变量,可以将其视为O(1)空间)。

© www.soinside.com 2019 - 2024. All rights reserved.