分而治之概念

  所谓“分而治之” 就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解。

  步骤如下:

  1. 分解(Divide):将问题分解为同一类型的子问题;
  2. 治理(Conquer):递归地解决子问题;
  3. 合并(Combine):合并子问题的答案,得出原问题的答案。

分而治之案例

  本案例是算法图解上的一个案例。现在你要分割一块土地,从中找出最大的正方形,找出的正方形可以全部分割该块土地

算法图解学习笔记03:分而治之

  下方是错误的分割方法

算法图解学习笔记03:分而治之

  所以现在就需要用分治方法递归的处理该问题(为什么?因为分治方法本身就是递归的),而递归首先就要确定基线!最容易处理的情况是,一条边的长度是另一条边的整数倍。

算法图解学习笔记03:分而治之

 

 

   所以,现在的问题就剩下如何将问题分解

算法图解学习笔记03:分而治之

 

算法图解学习笔记03:分而治之

算法图解学习笔记03:分而治之

 

  具体编程的案例可见下篇博文——求最大公共子序列

 

相关文章:

  • 2021-11-16
  • 2021-09-08
  • 2021-10-09
  • 2021-07-03
  • 2021-09-07
  • 2021-06-09
  • 2022-01-11
  • 2021-06-25
猜你喜欢
  • 2021-06-30
  • 2022-01-22
  • 2022-12-23
  • 2021-06-18
  • 2021-11-29
  • 2021-08-16
相关资源
相似解决方案