算法时间复杂度
概念:
T(n) = O(f(n))
它表示随着n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。
O()称之为大O记法。一般情况下,随着n的增大,T(n) 增长最慢的算法为最优算法。
常见的时间复杂度:
常数阶
线性阶
对数阶
平方阶
nlogn阶
立方阶
指数阶
常用的时间复杂度所消耗的时间从小到大依次是:
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
常用术语
最坏情况:即不会再有比它更糟糕的情况了,除非特别指定,一般所说的运行时间都是最坏情况所需的时间。
平均情况:一般指的是期望的运行时间。