zoukankan      html  css  js  c++  java
  • 算法图解学习笔记03:分而治之

     分而治之概念

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

      步骤如下:

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

    分而治之案例

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

      下方是错误的分割方法

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

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

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

  • 相关阅读:
    Deferred对象
    回流和重绘(转载)
    Javascript数组与类数组对象
    函数节流与函数去抖
    Express框架Fetch通信
    nodejs调试总结
    Webpack vs Gulp(转载)
    sourcetree管理git
    js时间转化
    React封装RadioGroup
  • 原文地址:https://www.cnblogs.com/vi3nty/p/9406075.html
Copyright © 2011-2022 走看看