算法设计与分析_算法设计与分析(第2版)第2章分治策略回顾

YI时间|外刊|MM-DFW|机器学习系列
点击上方蓝字,关注给你写干货的松子茶

43af7285151ea32e56de547075499aa4.png

分治策略是通用算法设计技术之一,很多有效的算法是它的特殊实现,顾名思义就是分而治之。一个问题能够用分治法求解的要素是

  • 问题能够按照某种方式分解成若干个规模较小、相互独立且与原问题类型相同的子问题;

  • 子问题足够小时可以直接求解;

  • 能够将子问题的解组合成原问题的解。

由于分治法要求分解成同类子问题,并允许不断分解,使问题规模逐步减小,最终可用已知的方法求解足够小的问题,因此,分治法求解很自然导致一个递归算法。

通过二分检索算法BinarySearch(T, l, r, x)和二分归并排序算法MergeSort(A,p,r)   展示分治策略的特点:

  • 将原问题归约为规模小的子问题,子问题与原问题具有相同的性质.

  • 子问题规模足够小时可直接求解.

  • 算法可以递归也可以迭代实现.

  • 算法的分析方法:递推方程.

分治策略的算法分析工具:递推方程

5bbd1b0b624bb8c562fbe2341b87ecd5.png

求解方法

  • 第一类方程:迭代法、换元法、递归树、尝试法

  • 第二类方程:迭代法、递归树、主定理

3  改进分治策略的两种途径:

  • 通过代数变换减少子问题个数,如:位乘问题、矩阵乘法。

  • 利用预处理减少递归内部操作,即:算法中的处理尽可能提到递归外面作为预处理。如:平面点对问题。

欢迎评论哦,纠错评论建议均可

d20f77009c4eb55c4c52b373fa3af061.gif

f1265164d66856ceafb7c92ca7bd8493.png

-THE END-

版权声明:以上内容为松子茶公众号原创作品,版权归属作者所有。未经作者授权,严禁转载或镜像,否则将依法追究相关行为主体的法律责任。欢迎各位朋友转发朋友圈分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值