分治算法是五大常用算法之一,准确的说它并不是一种特定的算法,而是一种算法思想。分治的意思就是分而治之。当一个问题的规模很大的时候,我们可以尝试将它分解为多个子问题,然后再将这些子问题的解合并汇总起来,得到原问题的解。分治算法可以总结为四个特征,三个步骤。

 

分治算法的四个特征:

1. 问题缩小到一定规模以后会被很容易的解决

2. 问题可以被分解为多个规模较小的相同问题,即问题具有最优子结构特性 

3.分解出的问题可以被合并为原问题的解

4.子问题完全独立(非必要条件)

 

分治算法的三个步骤

1. 分:分解问题为更小的子问题

2. 治: 如果问题被分解到了一定规模,已经很容易就能被解决了,那就求解它

3. 并:将子问题合并起来,得到原问题的解

分治算法举例

1. 二分法

2. 快速排序

3. 归并排序

4. 傅里叶变换

5. 最接近点对问题

6. 汉诺塔问题

参考文献:

1. https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html

2. https://www.cnblogs.com/bigsai/p/14080846.html