一、递归的概念
- 直接或间接地调用自身的算法称为递归算法。递归两个要素:
- 边界条件,即确定递归到何时终止,也称为递归出口
- 递归模式,即大问题如何分解成小问题,也称为递归体
二、分治法的基本思想
-
分治法就是“分而治之”,就是把一个复杂的问题分成两个或更多相同或相似的子问题,再把子问题分成更小的子问题......直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并
-
分治法在每一层递归上都有三个步骤:
- 分解:将原问题分解为若干个小的、相互独立的、与原问题相同的子问题
- 求解:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
- 合并:将各个子问题地解合并为原问题地解
-
如果各子问题不是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然也可用分治法,但一般用动态规划法更好