14.2.2 时间复杂度与空间复杂度-02
本节把复杂度推进到递归式。课程重点不是要求你掌握所有递归求解技巧,而是认识主定理适用的形式,并会对常见增长阶做比较。
递归式形式
典型分治递归式:
其中:
| 符号 | 含义 |
|---|---|
| 子问题个数 | |
| 每个子问题规模 | |
| 分解和合并等额外工作 |
主定理只适用于这种“规模按比例缩小”的形式。若是
主定理的比较核心
比较
如果
例:
这里
因为
复杂度比较题
比较增长阶时,先把常数去掉,再按增长序排:
课程例题中 1000n 的量级仍然是
空间复杂度补充
递归除了时间成本,还有调用栈空间。若递归深度为
本节例题
递归式 $T(n)=8T(n/2)+n^2$ 的时间复杂度为:
自查清单
- 能否判断主定理是否适用于某个递归式?
- 能否计算
并与 比较? - 能否解释为什么递归调用栈也会占用空间?