族谱网 头条 人物百科

分治法

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:612
转发:0
评论:0
早期历史上的先例折半搜索算法——一个将原来问题连逐地拆细成大约一半大小的单一子问题的分治算法——拥有一段悠长历史。虽然算法在计算机上的清楚描述出现在1946年约翰莫齐利(JohnMauchly)的一篇文章里,然而利用已排序的物件序列去加快搜寻的构想早已在公元前200年的巴比伦尼亚出现。另一个单一子问题的分治算法是找出2个数的最大公因数的辗转相除法(透过将数字化小至使子问题变得简单),于公元前数世纪已经出现。一个早期有多个子问题的分治算法是高斯在1805年描述关于快速傅立叶奱换的算法,尽管他没有量化地分析它的操作数目,而快速傅立叶奱换直至在一世纪之后被重新发现之前亦没有广泛流传。这个算法现在称为库利-图基快速傅里叶变换算法。至于专门用于计算机之上而且正确地分析的分治算法早期例子,则可以数到约翰·冯·诺伊曼于1945年发明的归并排序。另一个显著的例子是AnatoliiAlexeevitchKa...

早期历史上的先例

折半搜索算法——一个将原来问题连逐地拆细成大约一半大小的单一子问题的分治算法——拥有一段悠长历史。虽然算法在计算机上的清楚描述出现在1946年约翰莫齐利(John Mauchly)的一篇文章里,然而利用已排序的物件序列去加快搜寻的构想早已在公元前200年的巴比伦尼亚出现。另一个单一子问题的分治算法是找出2个数的最大公因数的辗转相除法(透过将数字化小至使子问题变得简单),于公元前数世纪已经出现。

一个早期有多个子问题的分治算法是高斯在1805年描述关于快速傅立叶奱换的算法,尽管他没有量化地分析它的操作数目,而快速傅立叶奱换直至在一世纪之后被重新发现之前亦没有广泛流传。这个算法现在称为库利-图基快速傅里叶变换算法。

至于专门用于计算机之上而且正确地分析的分治算法早期例子,则可以数到约翰·冯·诺伊曼于1945年发明的归并排序。

另一个显著的例子是Anatolii Alexeevitch Karatsuba于1960年发明在 O ( n log 2 ⁡ ⁡ --> 3 ) {\displaystyle O(n^{\log _{2}3})} 步骤内将两个n位数相乘的Karatsuba算法。它安德雷·柯尔莫哥洛夫哥洛夫于1956年认为这个乘法需要 Ω Ω --> ( n 2 ) {\displaystyle \Omega (n^{2})} 步骤的猜想。

高德纳举了一个最初并没有涉及计算机的分治算法例子,就是一般邮局用于分发信件的方法:信件在主要邮局根据不同的地理范围而分到不同的袋里,每个袋亦在运送到地区邮局时分到更小的袋里,如是者直至信件被派发为止。这个方法与早于1929年的打孔卡排序机所用的基数排序相类同。

优势

解决困难问题

分治算法是一个解决复杂问题的好工具,它可以把问题分解成若干个子问题,把子问题逐个解决,再组合到一起形成大问题的答案。比如,汉诺塔问题如果采用分治算法,可以把高度为n的塔的问题转换成高度为n-1的塔来解决,如此重复,直至问题化简到可以很容易的处理为止。

算法效率

人们发现有很多效率很高的分治算法,比如,Karatsuba快速乘法算法、快速排序算法和并行算法、矩阵乘法的施特拉森算法、快速傅里叶变换等。

同步性

内存存取

修正控制

实现

循环递归

在每一层递归上都有三个步骤:

分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题。

解决:若子问题规模较小且易于解决时,则直接解。否则,递归地解决各子问题。

合并:将各子问题的解合并为原问题的解。

显堆栈

示例

分治法在高级语言中主要的一个思想是递归,LISP语言中的体现出了极丰富的分治法。

以下是归并排序C语言的示例代码,输入参数中,需要排序的数组为array[],起始索引为first,终止索引为last。调用完成后,array[]中从first到last处于升序排列。

voidmerge_sort(intarray[],unsignedintfirst,unsignedintlast){intmid=0;if(first<last){mid=(first+last)/2;merge_sort(array,first,mid);merge_sort(array,mid+1,last);merge(array,first,mid,last);}}

在程式中可以看出分治法的应用:在merge_sort()中,将原来针对索引first到last的数组排序的问题,分为二份较小的问题

先针对索引first到mid的数组排序。

再针对索引mid+1到last的数组排序。

最后再进行二个数组的合并。


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 胡汉分治是什么时候的胡汉分治的利与弊
历史上著名的胡汉分治是少数民族的统治者为了更好的管束百姓,而实行的民族分治政策,那么胡汉分治是什么时候的呢?胡汉分治形势图历史文献记载,胡汉分治发生在中国古代十六国时期,当时天下大乱,民族之争,国家之争,导致天下处处都是战乱,民不聊生。饥荒,病魔时时刻刻都发生在百姓身上。当时的少数民族渐渐崛起,开始有了与汉族平分秋色的实力,到最后,以至于实力超过了汉族人民。因而,在西晋末年,匈奴人攻入中原,打败汉族以后,由当时非常有名望的匈奴贵族刘渊建立了汉国,他为了管理好国家,将汉族人民与少数民族,也就是所谓的胡人分开管理,设单于左辅、右辅,专门治理胡人,又专门设立了管理汉人的大臣,使汉人和胡人井水不犯河水,各自生活各自的。刘聪继位后,又进一步完善巩固了胡汉分治制度。十六国时期的胡汉分治,使得汉人与胡人更好的相处,为国家的发展奠定了一定的基础。然而,每件事情都会有利益和弊端。因为统治者是胡人的原因,胡人...
· 胡汉分治何时开始的?胡汉分治和府兵制的关系
历史上著名的胡汉分治,是十六国时期一些少数民族的统治者为了更好的管束各自的臣民,而实行的民族分治政策。那么具体的什么是胡汉分治呢?都有哪些具体的政策呢?想要了解什么是胡汉分治,还要从它的背景开始说起。西晋末年,匈奴贵族刘渊统一了中原以后,建立汉国,他设立单于左辅、右辅,专门管理胡人。这里的胡人就是泛指北方的各种少数民族。刘渊死后,为了能让胡汉分治制度能更加齐全,他的儿子刘聪登上皇位后,进一步改善,完整胡汉分治制度,以他的儿子刘粲设立成大单于,继而又设立左右辅,各自管理六夷10万人的部落,每隔一万人的部落时,他都设置了一位都尉,掌管部落;另设左右司隶,专门管理汉人,各自管理20余万户汉人,每隔一万户设置一位内史大臣,总共43位内史。他这样设置的实质就是依靠和利用匈奴以及其他胡人贵族专门排挤汉人。后来,汉国灭亡,羯族首领石勒建立了赵国,同时,他也为了挤压汉人,设立了内史大臣专门治理汉人,另外也...
· 胡汉分治是什么时候开始的制度?
胡汉分治的意义在我国古代10世纪到12世纪,由于统治者的贤能,为了胡人和汉人的和平共处,实行了著名了胡汉分治制度。之后,胡汉分治制度更是影响了一个又一个朝代的君主。那么?胡汉分治的意义到底有那些呢?胡汉分治图片胡汉分治其实是一种民族之间的分治,也就是把不同的民族分开进行管理,原本为中国古代时候汉族用来统治边关那些少数民族的政策,却在十六国这个特殊的时期,打破了以往汉人统治国家的传统,大量的少数民族在中原建立自己的政权,因而,分治制度被少数民族用在了汉族人身上。对于少数民族而言,汉族人无论是在文化,教育,传统方面都比少数民族略胜一筹,少数民族的人为了使自己的政权取代汉族人,尤其是土著居民的认可和支持,正由于这个原因,胡汉分治被广泛应用。它使汉族人被少数民族的人统治着,为当时的少数民族的统治者提供了非常好的治国决策,使胡人和汉人能够和平统一的相处,使国家更好更快的发展。并且胡汉分治制度能让少数...
· 南北分治——刘秀和匈奴帝国分裂的背后博弈
按照史料记载,自王莽篡汉以来,中原大地便陷入到动乱之中,而导致这一动乱的根本,便是王莽的所谓“立新”及改制之举。虽然掌权之初,得到了一些朝中大臣、百姓人民的拥戴,但也遭到了不少人的反对。譬如王莽代汉后,曾派使者召请新都相孔休为国师,但孔休却是“遂呕血托病,杜门自绝,不任新莽官职”。又有大司空彭宣、王崇,光禄大夫龚胜,太中大夫邴汉等也请求乞骸骨,谢官归里。而王莽专权时,大封其亲信,多达三百九十五人,而同时却废黜刘氏宗族诸侯王三十二人、王子侯一百八十一人。这种情况下,刘氏宗族相继起兵反抗也就是必然的了。居摄元年(公元6年),安众侯刘崇率百余人攻宛,因人少而失败。次年九月,东郡太守翟义称呼为国讨贼,以安社稷,起兵十余万,立严乡侯刘信为天子,三辅二十三县十余万人起而响应。王莽闻讯后,大惊,连忙遣关东甲卒前往镇压,一时间,长安周围局势十分紧张,直到第二年二月,大军才将翟义等人的举事镇压下去。居摄三年...
· 胡汉分治为何能够有效加速少数民族的汉化吗
历史上著名的胡汉分治,是十六国时期一些少数民族的统治者为了更好的管束各自的臣民,而实行的民族分治政策。那么具体的什么是胡汉分治呢?都有哪些具体的政策呢?胡汉分治图片想要了解什么是胡汉分治,还要从它的背景开始说起。西晋末年,匈奴贵族刘渊统一了中原以后,建立汉国,他设立单于左辅、右辅,专门管理胡人。这里的胡人就是泛指北方的各种少数民族。刘渊死后,为了能让胡汉分治制度能更加齐全,他的儿子刘聪/">刘聪登上皇位后,进一步改善,完整胡汉分治制度,以他的儿子刘粲设立成大单于,继而又设立左右辅,各自管理六夷10万人的部落,每隔一万人的部落时,他都设置了一位都尉,掌管部落;另设左右司隶,专门管理汉人,各自管理20余万户汉人,每隔一万户设置一位内史大臣,总共43位内史。他这样设置的实质就是依靠和利用匈奴以及其他胡人贵族专门排挤汉人。后来,汉国灭亡,羯族首领石勒建立了赵国,同时,他也为了挤压汉人,设立了...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信