探讨递归的Fibonacci sequence(斐波那契数列)的时间复杂度
递归先从左边进入,相当于二叉分支,那么栈帧可以重复使用,就是沿着这个树的单个路径向下(考虑最左枝),该路径上每次调用Fib都开一个栈帧,那么叶子节点最大深度为N - 1。时间复杂度:2^0 + 2^1 + 2^2 + ·······+ 2^(n-1) 等比数列求和 2(1 - 2^n) / (1 -2)递归的斐波那契数列计算到2^40 还可以(1w亿,大概5s),2^50次方就得很久了(规模为1000w亿,5000s)时间复杂度O(2^n) — 这里n=10就是2^10 = 1024。
原创
2022-10-25 19:38:02 ·
411 阅读 ·
1 评论