时间复杂度分析
T (n) 为基本操作执行次数的函数。
若存在函数 f(n),使得当n趋近于无穷大时,T(n)/ f(n)的极限值为不等于零的常数,则称 f(n)是T(n)的同数量级函数。
记作 T(n)= O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
直白点说,就是看基本操作数的数量级。
与数据规模的关系
在大多数算法竞赛测评平台上,每秒操作次数约为1e^7,在这个限制下,时间复杂度一定的算法存在能处理的数据规模上限。
具体如下(最为保险的数据规模,视具体问题,上限可略大些):
复杂度 | 数量级 |
---|---|
logN | >>10^20 |
N^1/2 | 10^12 |
N | 10^6 |
NlogN | 10^5 |
N^2 | 1000 |
N^3 | 100 |
N^4 | 50 |
2^N | 20 |
3^N | 14 |
N! | 9 |