Core
- 把一个大问题划分成诺干个子问题(子问题之间相互独立)
- 解决每个子问题
- 把每个子问题合并到一起
Optimization Method
- Reduce the sub Question
通过代数消除子问题的个数
AC, BD 被复用XY = ? X = A2^(n/2) + B Y = C2^(n/2) + D XY = AC2^(n/2) + (AD+BC)2^(n/2) + BD AD+BC = (A-B)(D-C) + AC + BD
时间复杂度从:c 是常数 W(n) = 4W(n/2) + cn W(n) = 3W(n/2) + cn
- Pretreatment before inner Recursion
通过预处理减少内部的递归计算了,实际是空间换时间
经典例题
快速排序的实现