- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分治策略在归并排序中的算法设计-设计论文
分治策略在归并排序中的算法设计
李六杏
(安徽经济管理学院,安徽 合肥 230031)
摘 要:分治是一种解题的策略,它的基本思想是分而治之.归并排序法是将已有序的子序列合并,得到完全有序的序列.在各种排序方法中,如归并排序、堆排序、快速排序等,都存在有分治的思想.归并排序法是采用分治法的一个非常典型的应用.本文利用分治策略对归并排序进行算法设计,并与其它算法分析比较.
关键词 :分治策略;归并排序;算法设计;比较优势
中图分类号:TP311.1文献标识码:A文章编号:1673-260X(2015)08-0021-03
分治策略即算法设计中的分治法.它的基本思想:对于那些规模较大的问题,我们难以直接解决,通常将其分解成若干个相互独立、易于解决的小问题,然后再通过递归算法,求出这些子问题,将这些子问题进行合并后的解,即可得到较大的原问题的答案.分治策略就是通过减小问题的规模,将大的问题化解成若干个小问题后逐步求解,这样能够大大降低了问题的复杂程度,提高了解决问题的效率.本文利用分治策略对归并排序进行改进算法设计,并与其它算法进行分析比较.
1 分治策略的适用条件
分而治之是一种解题的方法,其基本思路是:“如果一个大问题比较复杂,就可以将这个问题分解,然后各个击破.”分治从字面上包含了“分”和“治”两层含义,那么如何分,分后又如何“治”就成为我们解决问题的关键之处.通常并不是所有的问题都可以采用分治策略,只有那些能将问题分解成与原问题相似的、意思接近的子问题,并且再合并以后依然符合原问题的意思的这些问题,才能适用分治策略[1].一般的,能够使用分治算法解决的问题有以下几点特征:
(1)此问题在规模上可以缩小到一定的程度就能很容易地解决.一般的问题都能满足这个条件,这是因为一般问题的计算复杂性都是随着问题规模的增大而增大;
(2)此问题能够分解成若干个类似的规模较小的问题,也即该问题能够分解成若干个子问题来解决.这是分治策略应用的前提,一般大多数问题都是可以满足的,这个特征充分反映了分治策略中递归思想的应用;
(3)若干个分解出的子问题的解能够合并为原问题的解;这一点是关键,能否利用分治法完全取决于问题是否具有第三条特征,如果具备了第一条和第二条特征,而不具备第三条特征,则可以考虑用贪心法或动态规划法;
(4)此问题分解得出的若干子问题必须是相互独立,即分解的子问题相互之间不存在公共的子子问题.这就涉及到分治策略的使用效率,如果各个子问题相互之间是不独立的,有共性部分,则分治法就要做许多重复的工作,公共的子问题被重复地解决,此时虽然可以使用分治算法,但其效率较低,这时反而使用动态规划算法较好.
2 分治算法解析
在使用分治策略算法解决问题时,一般分为三个步骤操作.第一步,划分问题:首先将要解决的复杂问题分解成若干个较简单的同类型的小问题.在问题划分时,可以采取递归策略,即把一个规模大的问题逐步分解到若干个规模较小的子问题,直至分解成可以很轻松的直接求出这些子问题的解;然后将这些子问题逐层一级一级的合并,直至返回到最上层,即可得出原问题的解.根据分治策略划分问题的原则,一般的,每层可划分成两个子问题,并且这两个子问题在规模差不多最好.在逆向合并求解时要根据问题而异,有些问题逐层递归分解完后就能得到原问题的解,而有些问题可能需要先逐层的进行合并,原问题的解才可能得到.第二步,递归求解:当子问题经过层层划分到足够小时,轻松求解出最小子问题的解.第三步,合并问题:将已解决的下层子问题的解再逐层向上合并,最终得到原问题的解答.由上所述,分治算法的设计过程如下图1所示.
3 分治策略在归并排序中的算法设计
在数据结构的排序算法中,归并排序效率较高.归并排序算法描述:通过将已经有序的若干个子序列合并,最后得出完全有序的序列.对一个没有排好序的序列进行排序,首先使用分割的方法先将大序列分割成一个个已排好序的小序列,利用归并的方法,再将排好序的子序列合并成一个完整的排好序的序列[2].以上正好符合分治策略的思想,在诸多的排序算法中,例如堆排序、归并排序、快速排序等等,都存在有分而治之的思想.而归并(Merge)排序算法是采用分治策略(Divide and Conquer)的典型的应用.下面以实例加以分析比较,问题描述如下:
3.1 已知某数列存储在序列A[1],A[2],……,A[n],拟采用分治策略对它们进行排序(从小到大或从大到小).
例如:10 4 6 3 8 2 5 7
排序后为:2 3 4 5 6 7 8 10
按照分治策略的三步法,对归并排序问题解决如下:
划分问题:把这组序列分成元素个数尽可能相等的两部
您可能关注的文档
最近下载
- 第四章 旅行社与导游人员管理法律制度.ppt VIP
- 學生住宿管理.pptx VIP
- AnIntroductiontoGCC中文.pdf VIP
- 【文旅营销案例】文旅休闲营地策划提案_市场营销策划_文旅产业营销策划方案合集.pptx
- 2024年7月1日实施新版医疗器械贮存(陈列)和在库检查管理制度.docx
- 2019—2023年注册会计师考试《财务成本管理》真题合集(含答案及解析)共5套.pdf
- 0.6万吨浅园仓滑模专项施工方案(专家论证版).doc
- 贝多芬C大调第二十一钢琴奏鸣曲《黎明_华尔斯坦》第一乐章(Op.53,No.21) 高清钢琴谱五线谱.docx
- 探究档案管理工作规范化及标准化.doc
- 动漫自媒体项目商业计划书.pptx VIP
文档评论(0)