常见时间复杂度
- O(1):常数复杂度
- O(log n):对数复杂度
- O(n):线性时间复杂度
- O(n^2):平方
- O(n^3):立方
- O(2^n):指数
- O(n!):阶乘
注意:只看最高复杂度的运算,且不考虑系数
主定理:用来解决所有递归函数的时间复杂度计算
| 算法 | 递推公式 | 时间复杂度 | 备注 |
|---|---|---|---|
| 二分查找 | T(n)=T(n/2)+O(1) | O(logn) | 一般发生在数列有序时 |
| 二叉树遍历 | T(n)=2T(n/2)+O(1) | O(n) | |
| 有序二维矩阵 | T(n)=2T(n/2)+O(log n) | O(n) | |
| 归并排序 | T(n)=2T(n/2)+O(n) | O(nlogn) |
大O表示法
使用大O表示法衡量某个算法的复杂度,其实就是讲该算法的运行时间用输入量为n的函数表示出来,这里的n通常指代的就是算法操作的元素个数
