算法时间复杂度

1. 简介

算法的时间复杂度是指在问题规模为 NN 时整个算法执行的基本语句单元次数,记为 T(N)T(N)

2. 分类

在算法时间复杂度分析中,常用 loglog plot\log-\log \ plot 图去衡量算法时间复杂度,该图横坐标为 logN\log NNN 为问题规模),纵坐标为 logT\log TTT 为时间频度)。

  • exponential:指数复杂度
  • cubicN3N^3
  • quadraticN2N^2
  • linearithmicNlogNN\log N
  • linearNN
  • logarithmiclogN\log N
  • constantCC

3. 符号

NlogNN\log N 为例:

  • Θ(NlogN)\Theta(N \log N):表示时间复杂度渐近为 NlogNN \log N

  • O(NlogN)O(N \log N):表示时间复杂度小于等于 NlogNN \log N

  • Ω(NlogN)\Omega(N \log N):表示时间复杂度大于等于 NlogNN \log N