时间、空间复杂度分析

所有代码的执行时间 T(n) 与每行代码执行次数 n 成正比。

大 O 表示法

T(n) = O( f(n) )

在这个公式,T(n) 代表代码的执行时间,n 表示数据规模的大写,f(n) 表示每行代码执行的次数总和。

大 O 时间复杂度表示代码执行时间随着数据规模增长的变化趋势,也叫渐进时间复杂度,简称时间复杂度。

时间复杂度分析

  • 只关注循环执行次数最多的一段代码
  • 总复杂度等于量级最大的那段代码的复杂度
  • 嵌套代码复杂度等于嵌套内外代码复杂度的乘积

几种常见的时间复杂度

多项式量级

  • 常量阶 O ( 1 )
  • 对数阶 O ( log n )
  • 线性阶 O ( n )
  • 线性对数阶 O ( n * log n )
  • 平方阶 O ( n ** 2 )、立方阶 O ( n ** 3 )、K 次方阶 O ( n ** k )

非多项式量级

  • 指数阶 O ( 2 ** n )
  • 阶乘阶 O ( n! )

空间复杂度

空间复杂度即渐进空间复杂度,表示算法存储空间与数据规模增长之间的关系。

最后更新: 8/10/2019, 7:38:12 PM