常见的数量级大小:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)
数量级 | 能承受的大致规模 | 常见算法 |
O(1) | 任意 | 直接输出结果 |
O(logn) | 任意 | 二分查找、快速幂 |
O(n) | 以百万计(五六百万) | 贪心算法、扫描和遍历 |
O(nlogn) | 以十万计(三四十万) | 带有分治思想的算法,如二分法 |
O(n2) | 以千计数(两千) | 枚举、动态规划 |
O(n3) | 不到两百 | 动态规划 |
O(2n) | 24 | 搜索 |
O(n!) | 10 | 产生全排列 |
O(nn) | 8 | 暴力法破解密码 |
O(1)叫常数时间;O(n)、O(n2)、O(n3)、O(n4)……叫做多项式时间;O(2n)、O(3n)……叫做指数时间。