YI时间|外刊|MM-DFW|机器学习系列
点击上方蓝字,关注给你写干货的松子茶
分治策略是通用算法设计技术之一,很多有效的算法是它的特殊实现,顾名思义就是分而治之。一个问题能够用分治法求解的要素是
问题能够按照某种方式分解成若干个规模较小、相互独立且与原问题类型相同的子问题;
子问题足够小时可以直接求解;
能够将子问题的解组合成原问题的解。
由于分治法要求分解成同类子问题,并允许不断分解,使问题规模逐步减小,最终可用已知的方法求解足够小的问题,因此,分治法求解很自然导致一个递归算法。
通过二分检索算法BinarySearch(T, l, r, x)和二分归并排序算法MergeSort(A,p,r) 展示分治策略的特点:
将原问题归约为规模小的子问题,子问题与原问题具有相同的性质.
子问题规模足够小时可直接求解.
算法可以递归也可以迭代实现.
算法的分析方法:递推方程.
分治策略的算法分析工具:递推方程
求解方法
第一类方程:迭代法、换元法、递归树、尝试法
第二类方程:迭代法、递归树、主定理
3 改进分治策略的两种途径:
通过代数变换减少子问题个数,如:位乘问题、矩阵乘法。
利用预处理减少递归内部操作,即:算法中的处理尽可能提到递归外面作为预处理。如:平面点对问题。
欢迎评论哦,纠错评论建议均可
-THE END-
版权声明:以上内容为松子茶公众号原创作品,版权归属作者所有。未经作者授权,严禁转载或镜像,否则将依法追究相关行为主体的法律责任。欢迎各位朋友转发朋友圈分享。