分治顾名思义“分而治之”,英文的意思翻译为“分割并征服”。

分治思想,简而言之就是将原问题分解成与“原问题相同但是规模更小”的子问题,并可以反复执行这个过程,使得问题规模减小到可以求解为止。

1、快速排序算法

2、快速傅里叶变换算法

3、Karatsuba大数乘法算法

问题:给定1000个数,从小到大进行排序。

先选择一个“标准”A,按照“比A小”和“比A大”将原来的数列分为两类,这样,只需要将两个子序列分别排好序,然后再合并到一块就ok了。

直接做该运算,需要做平方级别的复数乘法,这样的复杂度超级高!如何进行分解呢?

首先,不可能像上边排序算法一样,找一个“标准数”,取前一半和后一半采样点来做!

问题:两个很大的数相乘,如何更快的解决?

两个很大的数相乘,普通算法的时间复杂度为O(n^2)。

首先,将n位大数x和y进行分解。

然后,x·y就变成了下面这样

并且满足

所以,原来的大数乘法就变成了小数乘法!其实这位博士研究的算法不仅这里巧妙,而且还有一个小技巧!

这样的话,乘法又能变成加法了!计算复杂度又大大的降低了!

第一:数学归纳是使用分治思想

只要出现可以用数学归纳公式来表示的大规模问题,第一反应就应该想到分治算法,通过特定的函数参数安排,一定可以用同一个函数来表述不同规模的问题,套用递归结构,可迅速解决问题!

第二:分治思想不一定使用递归结构

递归结构是循环结构的一种,也是分治思想应用最多的一种程序结构,但是不一定要使用它!关键在于能够写出递归公式以及是否有必要使用递归算法。比如上边提到的快速傅里叶变换算法,就没有用到递归!

三:分治思想的核心是“如何分”

能够把问题很棒的进行分解,也是一种能力和本事!也就是说把问题用分治法来进行解决,是算法的难点,也是重点!一方面需要经验,另一方面也需要想象力!所以说呢?人生也是如此!不管遇到多大的苦难,我们需要在一次一次的锻炼中进行学会分解苦难,才能够大事化小,小事化了!

漫画:5分钟弄懂分治算法!它和递归算法的关系!相关推荐

  1. 量子计算机 漫画,漫画 | 10分钟看懂量子比特、量子计算和量子算法

    原标题:漫画 | 10分钟看懂量子比特.量子计算和量子算法 请做好准备,即将进入烧脑模式! 宏观世界的生活经验很多都是表象.比如,你可能认为世界的运行是确定的.可预测的:一个物体不可能同时处于两个相互 ...

  2. 5分钟弄懂语音识别技术原理

    5分钟弄懂语音识别技术原理 首先,我们知道声音实际上是一种波.常见的mp3.wmv等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows PCM文件,也就是俗称的wav文件.wav文 ...

  3. 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...

    原标题:豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~ 大家好,我是豆腐网王老师,专注于南京工程师职称评审政策解读,关注我,让您轻松面对职称评审,少走弯路!!! 南京中高级职称申报已有段时间, ...

  4. 终于弄懂KMP算法了

    1.简例弄懂KMP-点此链接查看 看了上面的文章,你肯定大概明白了KMP的运作原理,但是你可能对于文章提到的"部分匹配值"的又来还存在疑惑,那么请继续往下看: 我们先抛出两个问题, ...

  5. 10分钟弄懂当前各主流区块链架构

    最近区块链的概念可谓十分火热,从风投的投资到企业招聘区块链人才,似乎处处暗示着该技术将会给人类带来巨大改变.废话不多说,咱们就从技术角度来了解一下当前最主流的区块链诸如比特币.以太坊.HyperLed ...

  6. 5分钟弄懂:语音识别技术原理

    简要给大家介绍一下语音怎么变文字的吧.希望这个介绍能让所有同学看懂. 首先,我们知道声音实际上是一种波.常见的mp3.wmv等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows P ...

  7. 深度学习目标检测系列:一文弄懂YOLO算法|附Python源码

    在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系列算法原理,以及Faster RCNN的实现.这些算法面临的一个问题,不是端到端的模型,几个构件拼凑在一起组成整个检测系统,操作起 ...

  8. 5分钟弄懂Docker

    尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来. 官网的介绍是这样的: Docker is an open platfo ...

  9. 十分钟弄懂最快的APP自动化工具uiautomator2

    相信很多使用appium做过APP自动化的人都深有感触: appium运行慢.时间长 uiautomatorviewer定位元素时得关掉appium server 在低版本的appium上获取toas ...

最新文章

  1. http方法_像本地方法一样调用http服务,feign框架springboot项目实践
  2. java开发微信公众平台(一)-- 服务器配置
  3. OS X 键盘快捷键
  4. python issubclass 和 isinstance函数
  5. Leetcode 255. Verify Preorder Sequence in Binary Search Tree
  6. 小猿圈Java学习心得之Java程序员能力提升在哪
  7. GetLastError()返回值及含义
  8. Vue「五」—— 动态组件、插槽、自定义指令
  9. mysql lost connection to server during query
  10. Codeforces Round #250 (Div. 1) D. The Child and Sequence 线段树 区间取摸
  11. utilities —— 常见宏定义
  12. noip 2010 引水入城(dfs + 贪心)
  13. static在实例Extends、Overload中理解
  14. python微控制器编程从零开始 pdf_Python微控制器编程从零开始
  15. 嵌入式算法8---空间向量夹角公式及其应用
  16. RMAN-20003错误
  17. Android 网络获取图片处理
  18. Python Loess (Lowess) smooth 曲线平滑
  19. 名帖136 刘春霖 楷书《楷书帖选》
  20. 老款Tplink路由器如何桥接

热门文章

  1. 特斯拉Model 3国内起售价下调至23.59万元
  2. 成为计算机视觉工程师的第一个月,我都学会了什么?
  3. 网络运行时间提高100倍,Google使用的AI视频理解架构有多强?
  4. “不设边界”的云知声:从多场景AI芯片到视觉AI,誓要2019营收近3倍
  5. AI做不了“真”3D图像?试试Google的新生成模型
  6. 最新Python学习项目Top10!
  7. 深度学习必备数学知识之线性代数篇(附代码实现)
  8. 打一场AI竞赛,让你知道我的厉害
  9. 如何用Python实现iPhone X的人脸解锁功能?
  10. Springboot中优雅进行字段校验