什么是分治?

分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。

为什么要分治?

降低问题规模

怎么分治?

采用分治法解决的问题一般具有的特征如下:

1. 问题的规模缩小到一定的规模就可以较容易地解决。

2. 问题可以分解为若干个规模较小的模式相同的子问题,即该问题具有最优子结构性质。

3. 合并问题分解出的子问题的解可以得到问题的解。

4. 问题所分解出的各个子问题之间是独立的,即子问题之间不存在公共的子问题。

设计步骤

1. 划分步:把输入的问题划分为k个子问题,并尽量使这k个子问题的规模大致相同。

2. 治理步:当问题的规模大于某个预定的阈值n0时,治理步由k个递归调用组成。

3. 组合步:组合步把各个子问题的解组合起来,它对分治算法的实际性能至关重要,算法的有效性很大地依赖于组合步的实现。

分治法是简单、易理解、有效的工作方法。工作中遇到复杂问题的时候,可以尝试将问题分解成一个个小问题。每次面对解决一个小问题的时候,就会比较容易。

解决复杂问题方法-分治相关推荐

  1. 解决overfitting的方法

    解决overfitting的方法 Dropout, regularization, batch normalizatin. 但是要注意dropout只在训练的时候用,让一部分神经元随机失活. Batc ...

  2. 帝国cms后台上传大视频上传m3u8批量上传一次多个的解决思路和方法

    今天我们要解决的问题是,大视频文件上传以及切片m3u8文件的上传.上面一节内容,我们已经整体描述了视频类网站的解决思路和方法 .这节我们将分块来讲.假设的前提条件是,我们本地准备了一些视频原始素材,比 ...

  3. TIME_WAIT太多解决思路和方法

    TIME_WAIT太多解决思路和方法 参考文章: (1)TIME_WAIT太多解决思路和方法 (2)https://www.cnblogs.com/gao88/p/12129275.html 备忘一下 ...

  4. Hash算法解决冲突的方法

    Hash算法解决冲突的方法一般有以下几种常用的解决方法 1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入 公式为 ...

  5. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  6. 解决乱码的方法(转)

    出现乱码怎么办,解决乱码的方法一,出现乱码的原因分析 1,保存文件时候,文件有自己的文件编码,就是汉字,或者其他国语言,以什么编码来存储 2,输出的时候,要给内容指定编码,如以网页的形势输入时< ...

  7. 内存完整性已关闭,你的设备可能易受攻击已解决之处理方法

    最近有用户在打开安全中心内存完整性的时候提示内存完整性已关闭,你的设备可能易受攻击,这是有些驱动的兼容问题确实会导致内存完整性不能开启,那么该怎么解决呢?下面来看看解决方法吧!内存完整性是 Windo ...

  8. 抖音域名防封,抖音网址免拦截提示,抖音网站防红,域名报毒解决处理生成方法

    抖音的安全机制大家都知道,很复杂也很严格,笔者逆向分析安卓和苹果的抖音app,发现很多域名拦截处理方法很特殊,这里总结了一些常见的处理解决办法.抖音整个的安全机制系统来源于https://link.w ...

  9. Think Pad笔记本分区解决思路及方法

    Think pad笔记本分区解决思路及方法       近日好友拿着新买的Thinkpad X300过来找我,说这个笔记本只有一个分区,所有的东西不得放在C盘,希望再多分出几个分区.抱怨原先在wind ...

最新文章

  1. [ Android 五种数据存储方式之二 ] —— 文件存储数据
  2. QT的QBoxPlotSeries类的使用
  3. VS2013 使用QCustomPlot等三方库如何配置
  4. 如何在bootstrap轮播中调整图像大小
  5. 相互宝正式宣布将于2022年1月28日关停
  6. 大数据分析平台有哪些主要功能
  7. 使用Istio分布式跟踪应用程序
  8. 关于Matlab的MEX技术 10分钟教会你简单的matlab和C/C++混合编程(mex文件)
  9. matlab加分号,matlab加分号
  10. android—AOSP、AOKP、CM的区别
  11. 苹果和android充电线一根,苹果iPhone8充电接口大变:以后和安卓机用同一根数据线!...
  12. requests库爬取百度首页
  13. 每天坚持“踮脚尖”,时间久了,身体会收获什么?每天踮多久?
  14. echarts柱状图图例不显示的问题
  15. python中sep的用法:逗号的去除
  16. springmvc笔记回顾——持续更新
  17. Sigmoid函数以及传统线性函数
  18. 手把手教你 VMware安装Kali Linux(超详细)
  19. 基于STM32驱动SG90舵机
  20. 赛马-25匹马选出前三名问题

热门文章

  1. 八分钟项目管理视频教程-专题视频课程
  2. eclipse php设置xdebug,eclipse 中配置php的 XDebug调试
  3. C#生成电子印章源码
  4. 【牛客】摩拜2018校招数据分析工程师笔试解析
  5. python数星星_最好的朋友:C++11 移动语义和 Pimpl 手法
  6. matlab矩阵正交变换,在线计算专题(12):矩阵的特征值、特征向量、正交变换与二次型与常见矩阵分解...
  7. python项目实战——银行取款机系统(七)
  8. linux C语言实现文件锁之flock
  9. 微电网和直流电网中最优潮流(OPF)的凸优化(Matlab代码实现)
  10. Qt虚拟键盘相关内容