递归技术

递归的思想:将一个大问题分割成多个结构与原问题一样的小的子问题,然后解决子问题,最后将子问题的解合并得到原问题的解。

递归的应用:归纳法、分治法、动态规划法

1、归纳法:

1)根据数学归纳法,对参数n做归纳,

2)先假设参数小于n的问题已解决,

3)然后归纳出解决带参数n的问题的方法,

4)最后用归纳出的方法依次解决带参数0,1,…,n-1,n的问题,从而原带参数n的问题得解。

5)应用举例:基数排序、插入排序… …

2、分治法:

1)分解问题:将原问题分解成结构与原问题相同的子问题

2)解决子问题:递归解决分解出来的子问题

3)合并解:将子问题的解组合得到原问题的解

4)应用举例:二分查找算法、归并排序算法… …

3、动态规划法:

1)最优子结构(最优化原理):一个最优的决策序列,其每个子决策序列必须是最优的决策序列。

2)重叠子问题:问题的解通常用递归形式说明,但不用递归调用自身。

3)应用举例:最短路问题,最长公共子序列问题… …

点赞