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

第二章 递归与分治策略
1.算法总体思想
将一个难以直接求解问题分解成足够小的子问题,直到很容易求出其解为止。


2.递归函数的两个要素:
边界条件
递归函数


3.典型问题
兔子繁殖
斐波那契数列
Ackerman函数(双递归函数)


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


5.递归算法的优缺点分析:
(可解决斐波那契数列进行分析)
优:结构清晰,归纳法可证明其正确性
缺:运行效率低,耗费时间,占用存储空间
解决办法:用递推实现递归


6.分治法步骤:
分解
递归求解
合并(不一定需要,如二分搜索)


7.分治法计算效率分析
 


















主方法
 


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


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


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


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


12.快速排序
思路:大的放一边,小的放一边


13.算法之间的比较
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值