1⃣️递归函数
(1) 直接或间接调用自身的函数称为递归函数。
(2) 他通常把一个大型复杂的问题转化成若干个与原问题相似的规模较小的子问题来求解。
递归的基本思想
(3)关键在千找出递归定义和递归终止条件
它本身不再使用递归的定义。
(4)递归算法三个步骤
a) 分析问题、寻找递归:找出大规模问题与小规
模问题的关系,这样通过递归使问题的规模逐渐变小。
b) 设置边界、控制递归:找出停止条件,即可解的最小规模问题。
c)设计函数、确定参数:设计函数体中的操作及
相关参数。
2⃣️分治策略
1.将原问题划分 (或者归约)为彼此独立
的、规模较小而结构相同的子问题,递归地
求解所有的子问题并将子问题的解组合从而
得到原问题的解。
2.设计步骤
(a)分解:将原问题划分或者归约为若干个子
问题,子问题必须与原问题具有相同的结构,每个子问题可独立求解。对于输入划分时注意保持子问题规模的均衡。
(b)递归求解:按次序递归求解每个子问题,
注意给出递归求解的终止条件,即当子问题规模足够小时直接求解的方法。
(c)组合:把上述子问题的解组合,从而得到
原问题的解。
3、分治算法的分析方法
列出关于时间复杂度函数(最坏或者平均情
况下)的递推方程和初值,求解递推方程。
4、提高分之算法效率的途径
利用子问题之间的依赖关系减少子问题数目
利用预处理过程减少递归内部的运算