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