算法知识点整理——第2章 递归与分治策略

第二章 递归与分治策略

1.算法总体思想

将一个难以直接求解问题分解成足够小的子问题,直到很容易求出其解为止。

2.递归函数的两个要素:

边界条件

递归函数

3.典型问题

兔子繁殖

斐波那契数列

Ackerman函数(双递归函数)

4.当算法复杂度很高时(如:阶乘),计算机运行能力对运行时间的提高效果越来越不明显。

所以 提高算法的效率显得很重要

5.递归算法的优缺点分析:

(可解决斐波那契数列进行分析)

优:结构清晰,归纳法可证明其正确性

缺:运行效率低,耗费时间,占用存储空间

解决办法:用递推实现递归

6.分治法步骤:

分解

递归求解

合并(不一定需要,如二分搜索)

7.分治法计算效率分析

 

主方法

 

8.大整数乘法

思路:将大整数分段,通过替换减少乘法的次数来提高算法的效率。

9.Strassen矩阵乘法

思路:将大矩阵分解成分块矩阵,通过替换减少矩阵乘法的运算次数来提高算法的效率。

10.棋盘覆盖

思路:将2k × 2k棋盘分解成4个2k-1 × 2k-1棋盘,用一个L型骨牌覆盖住无特殊方格的三块,递归分割就可以

11.合并排序

思路:将队列分割成相等的两段,分别排序,然后合并。(递归分割直到只剩下一个)

改进:直接两两排序,然后合并

12.快速排序

思路:大的放一边,小的放一边

13.算法之间的比较

 

    原文作者:递归与分治算法
    原文地址: https://blog.csdn.net/haitaolang/article/details/55210794
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞