分治法
Posted 望北i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分治法相关的知识,希望对你有一定的参考价值。
分治法
分治法的基本思想
- 将原始问题划分或归结为规模较小的子问题
- 递归或迭代求解每个子问题
- 将子问题的解综合得到原问题的
- 注:
子问题与原始问题完全一样
子问题之间可彼此独立的求解
递归停止时,子问题可直接求解
算法设计思想
- 将原问题归结为规模为 n - 1 的2个子问题
- 继续归约,将问题归结为规模为 n - 2 的4个子问题,继续…当子问题规模为1时,归约过程截止
- 从规模 1 到 n - 1 ,陆续组合两个子问题的解,直到规模为n
分治算法的一般性描述
Divide(P)
if |P| <= c then S§
divide P into P1,P2,…Pn //划分
for i <–1 to k
yi <–Divide(Pi) //求解子问题
return Merge(y1,y2,…yk) //综合解
分治算法的复杂度分析递推公式
分治法复杂度分析主定理
改进分治算法途径
- 减少子问题
- 增加预处理
总结
写博客是为了一是整理所学知识,亲生写代码的经验,而是为了总结经典算法,三是督促自己努力,懂得越多,越知道自己知识的浅薄,四是希望和他人多多交流,有什么不对的地方大佬们多多指点
以上是关于分治法的主要内容,如果未能解决你的问题,请参考以下文章