时间复杂度
常见复杂度对应算法
| 时间复杂度 | 算法举例 |
|---|---|
| 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 |
本文详细介绍了算法的时间复杂度和空间复杂度,包括快速幂、KMP、线段树等典型算法的时间复杂度,以及常见数据类型的内存占用情况。同时,文中还列举了不同时间复杂度下算法能处理的最大数据规模。
3383

被折叠的 条评论
为什么被折叠?



