时间复杂度
常见复杂度对应算法
时间复杂度 | 算法举例 |
---|---|
O(lgn)O(lg n)O(lgn) | 快速幂、数位dp |
O(n)O(n)O(n) | KMP、欧拉筛法 |
O(nlgn)O(n lg n)O(nlgn) | 线段树 |
O(n2)O( n ^2 )O(n2) | 某些dp |
O(n3)O(n^3)O(n3) | 匈牙利算法 |
O(2n)O(2^n)O(2n) | 二进制枚举 |
O(3n)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(lgn)O(lg n)O(lgn) | 很大 |
O(n)O(n)O(n) | 107 |
O(nlgn)O(n lg n)O(nlgn) | 105 |
O(n2)O( n ^2 )O(n2) | 5000 |
O(n3)O(n^3)O(n3) | 500 |
O(2n)O(2^n)O(2n) | 20 |
O(3n)O(3^n)O(3n) | 16 |
O(n!)O(n!)O(n!) | 12 |