分治法——基本思想
设计过程
- 划分问题:整个问题划分成多个无关联的子问题
- 递归求解:求解各个子问题
- 递归调用正设计的算法
- 合并问题:合并子问题的解,形成原始问题的解
分析过程
- 建立递归方程
- 求解递归方程
递归方程的建立方法
- 设输入大小为
n
,
T(n) 为时间复杂性 - 当 n<c , T(n)=θ(1)
- 划分阶段的时间复杂性
- 划分问题为a个子问题。
- 每个子问题大小为 nb 。
- 划分时间可直接得到= D(n) 。
- 递归求解阶段的时间复杂度。
- 递归调用
- 求解时间= aT(nb)
- 合并阶段的时间复杂性
- 时间可以直接得到= C(n)
结论
T(n)={θ(1),aT(nb)+D(n)+C(n),if n<cif n≥c
求解方式
使用分治算法主定理,参考分治算法主定理