跳到主要内容

时间空间复杂度

  1. 时间复杂度 Big O
  2. 常用复杂度量级分析
  3. 空间复杂度 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

总结​

「时间空间复杂度」 = 时间和空间增长的趋势

来源​