python算法与数据结构(9)栈溢出和时间复杂度

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)。
时间换空间:空间不够用,就是缓存失效算法,不能缓存无限容量数据,会使用缓存淘汰算法保证空间可用。

发布了48 篇原创文章 · 获赞 0 · 访问量 752

猜你喜欢

转载自blog.csdn.net/qq_36710311/article/details/104666025
今日推荐