分治法

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) //综合解

分治算法的复杂度分析递推公式
在这里插入图片描述
分治法复杂度分析主定理
在这里插入图片描述
改进分治算法途径

  1. 减少子问题
  2. 增加预处理

总结
写博客是为了一是整理所学知识,亲生写代码的经验,而是为了总结经典算法,三是督促自己努力,懂得越多,越知道自己知识的浅薄,四是希望和他人多多交流,有什么不对的地方大佬们多多指点

以上是关于分治法的主要内容,如果未能解决你的问题,请参考以下文章

算法---分治法

chatGPT教你算法——分治法

chatGPT教你算法——分治法

第三节.二叉树和分治法

分治法之二分查找

算法学习---分治法和快速排序