二分搜索中的合并 combination(所谓合并 combination,更像是取代),当前子问题的结果(最终搜索的结果)直接就是上一步大问题的结果;
1. 递归与分治
一旦找到从给定问题到其较小规模问题之间的关系,这样的关系自然得出某种递归算法,直到可以一下子解决为止。
整体的全局的解,通常与部分的(比如二分,左/右)的解存在的关系;搞清楚这个关系是分治的精髓;
2. 分治的步骤
使用分治法的算法具有以下三种构成要素:
- 把问题分解为更小问题的分解过程(divide),比如二分,从中间拦腰截断;
- 把各个小问题的答案合并为原问题答案的合并过程(merge);
- 不需要再分解而直接能够解答的最基本的问题(base case);