分享好友 最新动态首页 最新动态分类 切换频道
10 归并排序and快速排序
2024-12-26 23:00

归并排序使用的就是分治思想。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。

 

代码

 
 

是否稳定:是稳定排序算法

时间复杂度

我们假设对 n 个元素进行归并排序需要的时间是 T(n),那分解成两个子数组排序的时间都是 T(n/2)。我们知道,merge() 函数合并两个有序子数组的时间复杂度是 O(n)。所以,套用前面的公式,归并排序的时间复杂度的计算公式就是

 
 

通过这样一步一步分解推导,我们可以得到 T(n) = 2^kT(n/2^k)+kn。当 T(n/2^k)=T(1) 时,也就是 n/2^k=1,我们得到 k=log2n 。我们将 k 值代入上面的公式,得到 T(n)=Cn+nlog2n 。如果我们用大 O 标记法来表示的话,T(n) 就等于 O(nlogn)。所以归并排序的时间复杂度是 O(nlogn)。

所以不管是最好情况、最坏情况,还是平均情况,时间复杂度都是 O(nlogn)。

空间复杂度:尽管每次合并操作都需要申请额外的内存空间,但在合并完成之后,临时开辟的内存空间就被释放掉了。在任意时刻,CPU 只会有一个函数在执行,也就只会有一个临时的内存空间在使用。临时内存空间最大也不会超过 n 个数据的大小,所以空间复杂度是 O(n)。

 我们遍历 p 到 r 之间的数据,将小于 pivot 的放到左边,将大于 pivot 的放到右边,将 pivot 放到中间。经过这一步骤之后,数组 p 到 r 之间的数据就被分成了三个部分,前面 p 到 q-1 之间都是小于 pivot 的,中间是 pivot,后面的 q+1 到 r 之间是大于 pivot 的。

根据分治、递归的处理思想,我们可以用递归排序下标从 p 到 q-1 之间的数据和下标从 q+1 到 r 之间的数据,直到区间缩小为 1,就说明所有的数据都有序了。

递推公式

 

代码

 
 

是否稳定:不稳定,涉及到交换了

是否原地排序:是, 空间复杂度是O(1)

时间复杂度

1.利用归并排序所讲,假设每次递归都能正好将数组分为相等的2个小区间,那么时间复杂度也是O(nlogn)

2.如果数据是有序的,那么我们要分区n次,每次分区扫描n, n-1 ,n-2 ... 1个数据,也就是平均扫描(n/2)个数据,时间复杂度是O(n^2)

最好、平均时间复杂度是O(nlogn),最坏是O(n^2)

归并排序和快速排序是两种稍微复杂的排序算法,它们用的都是分治的思想,代码都通过递归来实现,过程非常相似。理解归并排序的重点是理解递推公式和 merge() 合并函数。同理,理解快排的重点也是理解递推公式,还有 partition() 分区函数。

最新文章
如何利用百度百科提高自己网站权重排名剖析
大家在做广告的时候通常会选择权重比较高的网站,因为在权重高的网站做广告,广告内容更容易被读者看到,纵观互联网发展,百度搜索引擎作为互联网的入口, 掌握了大部分流量的去处,当然旗下的产品会给予很高的权重,我们现在搜索一个资料
荣耀Magic6:性能超越华为Mate70,售价仅3149元的性价比之选
在智能手机市场上,旗舰机型的竞争越来越激烈。特别是在华为Mate70推出后,不少消费者在价格与性能之间面临选择。然而,荣耀Magic6的横空出世,让这一选择变得更为简单。搭载先进的骁龙8Gen3处理器,荣耀Magic6以3149元的售价,在性能上超
新网站收录及备忘录网址
搜索引擎网站收录地址大全 【在此页面提交您的网站到各大搜索引擎】 360搜索引擎登录入口:http://info.so.360.cn/site_submit.html 北京拆迁律师http://www.jklst.com 百度搜索网站登录口:http://www.baidu.com/search/url_s
微信里如何制作投票,微信人工投票
标题:微信里如何制作投票,微信人工投票随着微信的普及,微信里的功能也越来越丰富,除了聊天、朋友圈等功能之外,微信还可以进行投票,让用户能够更加便利地进行各种决策和活动。下面我们就来详细介绍一下微信里如何制作投票,以及微信人
高清美女写真生成新利器——用搜狐简单AI轻松打造你的AI女友
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在当今科技飞速发展的时代,生成虚拟写真已成为一种新的潮流。大家是否想过,为什么社交网络
阿里巴巴排名靠前的技巧是什么?具体内容是什么?
现在电子商务内的竞争是越来越激烈,怎么样才能让自己的商品信息排名更靠前,这个问题是所有商家们关心的问题。毕竟商品信息越靠前曝光率就会越高,那么阿里巴巴排名靠前的技巧是什么?一、阿里巴巴排名靠前的技巧是什么?店铺的装修;2、要用
超级PDF转换器万能版
超级PDF转器是一款功能强大好用的pdf文件转换成其它格式文件的软件,界面简单,功能稳定,支持批量转换,操作起来 非常方便,完美支持将pdf文档转成word文档。软件功能特点:1.支持自定义转换页面范围。2.支持转换加密后的PDF文件(需要手动
视频影视文案自动生成工具推荐:盘点哪些创作软件具有高效文案写作生成功能
在当今数字化时代视频影视行业的发展日新月异,而优秀的影视文案则是吸引观众、提升影视作品优劣的关键因素之一。创作出引人入胜的影视文案并非易事,它需要创作者具备丰富的想象力、深厚的文学功底和敏锐的市场洞察力。为了升级工作效率多
江西新能源科技职业学院重庆招生计划人数 2024年招生专业代码
江西新能源科技职业学院在重庆招生章程、招生计划和招生规定等是考生填报志愿的重要依据,今天吴老师先向考生和家长提供最新的江西新能源科技职业学院在重庆的招生计划和人数,希望大家在报考江西新能源科技职业学院时作为参考!1、江西新
置顶免鉴H5跳转小程序的坑,微信可跳,H5无法跳、自定义传参、云函数上传失败等小白解决方案精选热门
本文适合小白交流,大佬勿喷。把自己遇到的坑,小白解决方案贴出来交流。坑1:微信跳转与H5跳转,跳转的路径不是一样的。跟我一样粗心伙伴注意了官方说明:网页会判断所在的环境来觉得采用哪种跳转方式,如检测到微信客户端内,则免鉴权使
相关文章
推荐文章
发表评论
0评