算法复杂度分析
大O符号 在数学上称之为渐进上界法
2nn = 2n方########n+nn = n+n方
当n非常大的时候。n方的数值将成主导,我们可以忽略n
常用的时间复杂度
- 1: 常量时间 一次赋值
- 2 log n: 对数时间 折半查找
- n: 线性时间 线性查找
- nlong n: 对数线性时间 快速排序
- n方: 平方 两重循环
- n三次方: 立方 三重循环
- 2的n次方: 指数 递归球菲波那切数列
- n!: 阶数
空间复杂度
时间换空间,空间换时间
空间换时间:典型的就是python里的集合,虽然他们比较浪费空间,但是可以通过下标实现O(1)的查找
时间换空间:当我们空间不够用,典型的就是空间失效算法,我们不可能缓存下相同容量的数据,就会使用一些空间缓存淘汰算法,来保证空间可用