1 栈溢出
def infinite_fib(n):
return infinite_fib(n-1) + infinite_fib(n-2)
if __name__ == '__main__':
infinite_fib(10)
因为无穷递归栈溢出报错:RecursionError: maximum recursion depth exceeded
2 时间复杂度
2n^2
n+n^2
1常用时间复杂度
1 常量时间 一次赋值
logn 对数时间 折半查找
n 线性时间 线性查找
nlogn 对数线性时间 快速排序
n^2 平方 两重循环
n^3 立方 三重循环
2^n 指数 递归求斐波那契数列、
n! 阶乘 旅行商问题
2空间复杂度
原地操作两个位置的元素,
有些操作需要申请额外空间完成算法。
布隆过滤
3时间换空间,空间换时间
空间换时间:python 中集合,浪费空间,但是可以0(1)。
时间换空间:空间不够用,就是缓存失效算法,不能缓存无限容量数据,会使用缓存淘汰算法保证空间可用。