分治法——见名思义,即分而治之,从而得到我们想要的最终结果。
分治法的思想是将一个规模为N的问题分解为k个较小的子问题,这些子问题遵循的处理方式就是互相独立且与原问题相同。(可以使用递归)
两部分组成:
- 分(divide):递归解决小的问题v
- 治(conquer):然后从子问题的构建原问题的解
三个步骤:
- 分解(divide):将原问题分解为若干个规模较小、相互独立,与原问题形式相同的子问题
- 解决(conquer):若子问题规模较小而容易被解决则直接解决,否则递归的解各个子问题
- 合并(combine):将各个子问题的解合并为原问题的解