python语言分析分析其时间和空间的复杂度。

已知序列 1,2,3,5,8,...,要求设计算法求第20项的值,并分析其时间和空间的复杂度。


# 根据定义递归求解
def Fib_definition(n):
 
        if (n <= 3): return n
        return Fib_definition(n - 1) + Fib_definition(n - 2)

sum =0
for i in range(0,21):
    sum+=Fib_definition(i)
print(sum)

递归求解的过程如同构造一棵二叉树,时间复杂度为n^2,空间复杂度:O(n)

img