Skip to content

分治法是建基于多项分支递归的一种很重要的算法范型。就是把一个复杂的问题分成两个或者更多的相同或者相似的子问题,知道最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。分治法在每一层递归上都有三个步骤:

  1. 分解:将原问题分解为若干个规模较小,相互独立且与原问题形式相同的子问题。
  2. 解决:若子问题规模较小而容易被解决则直接解决,否则递归地解决各个子问题。
  3. 合并:将各个子问题的解合并为原问题的解。

分而治之有哪些经典的应用呢?比如归并排序、快速排序、二分查找、傅里叶变换等等。