Skip to content

复杂度

复杂度可以衡量算法的好坏。分析复杂度的同时,也是模拟运算的过程。

时间复杂度

实际是指程序运行次数,而不是程序运行时间

  • O(1):常数阶
  • O(log2 n):对数阶
  • O(n):线性阶
  • O(nlog2n):线性对数阶
  • O(n^2):平方型
  • O(n^3):立方型
  • O(2^n):指数型
  • O(2^n):阶乘阶

空间复杂度

算法执行时创建的变量(包括临时变量)个数

  • 忽略常数,用O(1)表示
  • 递归算法的空间复杂度 = 递归深度N * 每次递归所要的辅助空间
  • 对于单线程来说,递归有运行时堆栈,求的是递归最深的那一次压栈所耗费的空间的个数,因为递归最深的那一次所耗费的空间足以容纳它所有递归过程。递归是要返回上一层的,所以它所需要的空间不是一直累加起来的

Released under the MIT License.