Skip to content

复杂度 ​


时间复杂度 ​

算法效率的度量 ​

  • 事后统计
  • 事前分析估算

算法时间取决于算法的控制结构(顺序,循环,分支)和原操作(固有数据类型大的操作)
从算法中选取基本操作的原操作,以该基本操作重复执行的次数作为算法的时间度量。

时间复杂度:T(n) = O(f(n))
随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同
即算法内的原操作重复执行次数和算法执行时间成正比。

例如: {++x;} 时间复杂度:O(1)
for(int i = 0; i< n;i++>){++x;} 时间复杂度O(n)
for(int i = 0; i< n;i++>) for(int j = 0; j< n;j++>){++x;}时间复杂度O(n^2)

常见时间复杂度 ​

time

平均时间复杂度 ​

所有可能的数据输入集的期望值

最坏时间复杂度 ​

最坏情况下的时间复杂度

空间复杂度 ​


算法所需空间的度量
空间复杂度:S(n) = O(f(n))