概念理解: 时间复杂度 空间复杂度

一. 时间复杂度(time complexity)

在进行算法分析时,语句总执行次数T(n) 是关于问题规模 n 的函数。进而分析执行次数T(n) 随规模 n 的变化情况并确定T(n) 的数量级。

算法的时间复杂度就是算法的时间度量,记作T(n) = O( f(n) ) 。它表示随问题规模 n 的增大,算法的执行时间的增长率和 f(n) 的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中,f(n) 是问题规模 n 的某个函数。


常见的时间复杂度量级有:

  • 常数阶O(1)
  • 对数阶O(logN)
  • 线性阶O(n)
  • 线性对数阶O(nlogN)
  • 平方阶O(n²)
  • 立方阶O(n³)
  • K次方阶O(n^k)
  • 指数阶(2^n)

上面从上至下依次的时间复杂度越来越大,执行的效率越来越低。

二. 空间复杂度(space complexity)

作为算法所需存储空间的量度,记做S(n) = O( f(n) ) 。其中,n为问题的规模;f(n) 为语句关于 n 的所占存储空间的函数。

空间复杂度比较常用的有:O(1)、O(n)、O(n²)

概念理解: 时间复杂度 空间复杂度_第1张图片

 

你可能感兴趣的:(算法)