分而治之
- 从中文角度来说,分而治之是一种很古老但很实用的策略,或者说战略,本意即使将一个较大的力量打碎分成小的力量,这样每个小的力量都不足以对抗大的力量.在现实应用中,分而治之往往是阻止小力量联合起来。
- 从程序猿的角度来讲,所谓“分而治之”
就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解。注意分而治之不是算法,而是一种解决问题的思路。
工作原理:
1.找出简单的基线条件;
2.确定如何缩小问题的规模,使其符合基线条件。
分治算法一般包括三个过程:
- 分解:将原问题分解成若干个子问题。
- 解决:递归求解各自子问题,如果子问题足够小,直接求解。
- 合并:合并这些子问题的解,即可得到原问题的结果。