外观
一句话答案
常见复杂度排序:O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(2ⁿ),分析看循环层数和递归规模。
核心要点
| 复杂度 | 典型算法 |
|---|---|
| O(1) | 哈希查找 |
| O(logn) | 二分查找 |
| O(n) | 遍历 |
| O(nlogn) | 快排/归并 |
| O(n²) | 冒泡/嵌套循环 |
追问与易错
追问方向:
- 递归的时间复杂度怎么分析?
- 均摊复杂度是什么?
- 空间复杂度怎么计算?
易错点:
- ❌ O(logn) 和 O(n) 差距不大——量大时差距巨大
- ❌ 递归空间复杂度是 O(1)——递归栈也占空间
💡 记忆锚点
复杂度速记"1对数线性线对数平方指数":O(1)秒出→O(logn)折半找→O(n)扫一遍→O(nlogn)排序级→O(n2)双重循环→O(2^n)穷举爆炸。n=10^6时,O(n)一秒跑完,O(n2)要跑一天,O(2^n)宇宙毁灭都跑不完。递归复杂度看递归树:每层工作量乘层数,或用主定理T(n)=aT(n/b)+O(n^d)。