时间空间复杂度
- 时间复杂度 Big O
- 常用复杂度量级分析
- 空间复杂度 Big O
问题
我们如何判断一个算法的好坏?如何对比不同的算法?
时间复杂度 Big O
「大 0 表示法」算法的渐进时间复杂度
T(n) = O(f(n))
Big O 的计算是当一个问题量级增加的时候,我的时间 T 增长的趋势。
T(n) 代表代码执行时间的复杂度,f(n)代表代码执行的次数, O 代表正比例关系。
例子
例子 1
例子 2
例子 3
常用的时间复杂度量级
O(1)
O(n)
O(logN)
O(nlogN)
O(n^2)
O(nm)
其他复杂度指标
空间复杂度
「空间复杂度」: 内存空间增长的趋势
常用的空间复杂度
O(1), O(n), O(n^2)
O(1)
O(n)
O(n^2)
2d array, 矩阵 matrix
总结
「时间空间复杂度」 = 时间和空间增长的趋势
来源
- 时间复杂度和空间复杂度,大 O 表示法【数据结构和算法入门 2】 : https://www.youtube.com/watch?v=7_UkcocEmDs&list=PLV5qT67glKSGFkKRDyuMfwcL-hwXOc4q_&index=2