问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

算法设计与分析(4)——归并排序过程、时间复杂度分析及改进

发布网友 发布时间:2024-10-24 05:05

我来回答

1个回答

热心网友 时间:2024-10-24 05:38

上一篇文章,我们介绍过第一种基于分治策略的排序算法--快速排序。接下来,我们将讨论另一种基于分治策略的排序算法,归并排序。归并排序被认为是一种时间复杂度最优的算法,我们将按照基本过程、代码、最坏时间复杂度、平均时间复杂度、性能分析和改进这几个方面来展开讲述,为什么归并排序被认为是最优的基于比较的排序算法(理论上)。

一、归并排序过程

归并排序的思想是将待排序序列划分成若干个有序子序列;将两个或两个以上的有序子序列合并为一个有序序列。

我们大体上有两种解决方案:就像上面图片所展示的那样,先分再治。上面的图片已经非常形象地阐明了归并排序的整体过程。

上面这种过程的代码如下所示:

上面这种实现方式就是先不断划分子问题,然后解决最小规模问题,再进行合并。实际上,我们还可以通过第二种方式对这种基本的归并排序算法做一些改进。

2.二路归并排序

其实我们还有另外一种解决方案:将n个待排序的数据直接划分成n个规模为1的子序列。然后进行二路归并排序。

二路归并排序直接将n个待排序的数据元素看成n个有序子序列,依次合并两个相邻有序子序列,直到只剩下一个有序子序列为止。

示例代码如下所示:

很容易可以看到区别,我们将递归过程改为非递归过程。

二、归并排序的时间复杂度分析

归并排序特点:最坏情况是最后一次比较两个有序子序列各自剩最后一个数据元素。例如[公式] 这个两个子序列合并一共需要比较n-1次,是最坏情况。同理我们也很容易分析出最好情况,就是(1,2,3,4)和(5,6,7,8)这两个序列,只需要比较n/2=8/2=4次即可。

我们基于分治法时间复杂度公式进行分析

[公式]

则我们有分析公式如下

则我们可以大胆得出结论,归并排序最坏情况时间复杂度为[公式] 。

2.最好情况时间复杂度

最好情况时间复杂度也是[公式] 。

最好情况与最坏情况的时间复杂度都是nlogn量级的,那么我们也很容易得出结论(类比与高等数学的夹逼准则)归并排序的平均时间复杂度也为nlogn量级。

三、归并排序改进措施

详细过程:

思路:奇数趟从E[]写到B[]数组,偶数趟从B[]写到E[]数组。如果共做了奇数趟,排序结束,则最多回写一次。

基于这个思路,我们将二路归并排序的代码做一些小小的修改,以满足我们的不回写策略。这和不回写策略也同时消除了递归过程。下面是示例代码。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...开始是大腿内侧,后是大腿跟上,脖子后面,再就是肚子上,现在几乎... 工程土方定额里面:人力 运输距离 0.5km以内 20m以内是什么意思 ...由诸葛亮著的《诫子训》中摘录的,问您是如何理解的?! 手把手带你将 Linux 主机配置为静态路由器 Linux配置路由功能及添加静态路由 Linux模拟路由器从实现网络模拟到运行路由器linux模拟路由器 幼儿园中班学期结束家长会稿子怎么写 幼儿园中班期末家长会的发言稿 女人在哪个年龄段性俗最强 谁知道女人多大性欲最高? 算法设计与分析(4)——归并排序过程、时间复杂度分析及改进 萝卜坑代表什么意思?? 相信缘分吗 要在什么年龄才能遇到对的人? 算法设计与分析(4)——归并排序过程、时间复杂度分析及改进 为什么很多人不用烘鞋器? 啥时候能遇到对的人,都相信命中注定这一说吗 归并排序法归并排序法简介 帮忙制作一个青春校园的小说封面,名字叫做《吻上我的邪魅殿下》,只需一... 汽车被擦了漆怎么办? 萝卜坑代表什么意思?? 帮我制作一个小说封面,小说名字叫《三生三世轮回只为在一起》,作者:夏... 宜合蓝谷楼盘介绍 眉县阳光金苑重点介绍 ...写小说,名字叫《乱了夏天蓝了海》希望好心人帮我制作个封面,有... 欲钱去买五斤重生肖是什么生有 帮我制作一张小说封面,笔名叫沐寒汐,小说名叫《倾尽天下,乱世繁华 什么生肖出生时有五斤重, 九死一生运不转,欲钱去买五斤重生肖 上海绿洲公馆在什么位置? 记事本哪个牌子好,推荐记事本十大品牌排行榜排名 Python 100道经典算法及解析 Python游戏开发:数字华容道 乱乾坤txt全集下载 算法导论 - 第一部分 - 第二章 算法基础 网络维护到底是做什么? 归并排序比较 归并排序比较 归并排序算法是稳定的吗? 易百讯建站:网络维护是做什么的 ...现实的,喜欢和适合之间,权衡利弊,我依然相信对的人会出现 吗... 我现在初学中望CAD,如何按比例制作图纸还不是很清楚,望各位朋友相助!多 ... 卢中南:我的欧楷是怎样炼成的? 范冰冰刘亦菲大PK谁更胜一筹? 本以为范冰冰的裸色礼服是全世界,网友表示还是刘亦菲 请问如何买保险? 范冰冰和刘亦菲谁更好 保险怎么买才好? 名人论励志钢笔楷书字帖图书信息 标准行书规范硬笔书写字帖作者简介 如何正确的购买保险