时间复杂度
常见复杂度对应算法
时间复杂度 | 算法举例 |
---|---|
O ( l g n ) O(lg n) O(lgn) | 快速幂、数位dp |
O ( n ) O(n) O(n) | KMP、欧拉筛法 |
O ( n l g n ) O(n lg n) O(nlgn) | 线段树 |
O ( n 2 ) O( n ^2 ) O(n2) | 某些dp |
O ( n 3 ) O(n^3) O(n3) | 匈牙利算法 |
O ( 2 n ) O(2^n) O(2n) | 二进制枚举 |
O ( 3 n ) O(3^n) O(3n) | Floyd |
O ( n ! ) O(n!) O(n!) | 爆搜 |
空间复杂度
常见数据类型占空间大小
数据类型 | 空间(Byte) |
---|---|
int | 4 |
char | 1 |
long long | 8 |
float | 4 |
double | 8 |
指针 | 4/8 |
常见复杂度能在1s内计算的最大数据规模
时间复杂度 | 对应数据规模 |
---|---|
O ( l g n ) O(lg n) O(lgn) | 很大 |
O ( n ) O(n) O(n) | 107 |
O ( n l g n ) O(n lg n) O(nlgn) | 105 |
O ( n 2 ) O( n ^2 ) O(n2) | 5000 |
O ( n 3 ) O(n^3) O(n3) | 500 |
O ( 2 n ) O(2^n) O(2n) | 20 |
O ( 3 n ) O(3^n) O(3n) | 16 |
O ( n ! ) O(n!) O(n!) | 12 |