分治法的设计思想是:将一个难以解决的大问题分割成一些规模较小的相同问题,以便各个击破,即分而治之。

分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的求解这些子问题,然后将这些子问题的解合并得到原问题的解。

如何分解子问题?

从人们的大量实践中发现,在用分治法设计算法时,最好使子问题的规模大致相同,即将一个问题分成大小相等的k个子问题的处理方法是行之有效的。许多问题可以取k=2.这种使子问题规模大致相等的做法出自一种平衡子问题的思想,几乎总是比子问题规模不等的做法要好。

递归算法:直接或间接地调用自身的算法叫递归算法。