![e68d27f5a8d9059e0e454e5b2bf4e85c.png](https://i-blog.csdnimg.cn/blog_migrate/9ab007677b61b07aab30f9ea4e080575.png)
你是否还在为数据太难处理而苦恼?不用担心,本期专业资讯将为你带来两种性能优秀的排序算法——归并排序与快速排序,带你走进算法的世界。
![725e4a39bc8cf4eb2aed5630e675e984.gif](https://i-blog.csdnimg.cn/blog_migrate/4a1fe4edfb63003f983dc7078546b43c.gif)
![a74b71369bf1853afd7f469a8368549d.png](https://i-blog.csdnimg.cn/blog_migrate/cfd2e985d428951aecd75a156b351cc6.png)
归并排序&快速排序
归并排序
归并排序:利用分治的思想,先排左边一半,再排右边一半,最后再将两边有序的合并起来。
时间复杂度: 用T(n)表示排大小为n的数组的时间
例题:T ( n ) = 2 T ( n / 2 ) + n T ( 1 )
关于如何解这个递归方程,这里介绍其中一种方法,
步骤1、我们假设n是2的幂
步骤2、递推关系式的两边同时除以n,得到:
![979e2a6819182b127490681352a6216c.png](https://i-blog.csdnimg.cn/blog_migrate/66b7920b1f31d9d2d92b7d519ffb35aa.png)
因为该方程对2的幂的任意n是成立的,于是还可以写成:
![8706db6fc55a7b5e66d3860e366ed592.png](https://i-blog.csdnimg.cn/blog_migrate/75cb6ca73eae14373d712cf166027828.png)
步骤3、此时,我们把这些式子的左边和右边统一加起来,会发现很多项都同时消掉了,我们称之为叠缩公式。最后剩下:
![184951b465ae45066067f01b869cf6a9.png](https://i-blog.csdnimg.cn/blog_migrate/262c1e0ea698adbdf2c4fa0c6497b081.png)
![6850c7418bfc74f81664655aac7e3f65.png](https://i-blog.csdnimg.cn/blog_migrate/277008bb26d171b01191971756176dbe.jpeg)
快速排序
01
快速排序的主要思想依然是分治:
1、从待排数组中选出一个枢纽元(pivot)。
2、然后将数组分割为两个不相交集合s1 、s2,左半边集合的元素都小于等于pivot,右半边集合元素都大于等于pivot。
3、最后,分别排序左半边、右半边。
02
快速排序的枢纽元选择策略一般为:
1、三数中值分割法:即选择待排数组的左段、右段和中心位置的中值作为枢纽元。
2、待排数组的第一个元素:但是这很可能会出现极坏的情况——这个元素是这个数组里面最小的或者最大的,那么其他剩余元素要么被分进s1,要么被分进s2, TC:O(n^2)。这种最坏的情况出现在整个数组是预排序的(非递增、非递减)。
03
时间复杂度的关系为
(i为集合s1中的元素个数,分割数组也需要线性时间).
那么先来分析下快速排序的最好情况:分割完数组后,集合s1 , s2中元素大小都一样。即:
![5c7873c071ac32f67f48176d7f560a00.png](https://i-blog.csdnimg.cn/blog_migrate/6dfa41d1a9c4ba0a6ddcd636b1f1931c.png)
那么答案和刚才分析的归并排序是一样的,等式两边同时除以n,然后利用缩叠公式,最后得到
![f894f494039c42751d4a093907295be7.png](https://i-blog.csdnimg.cn/blog_migrate/353c434f95ceb9947384609282feb329.png)
然后对于前面提到的“可能出现的最坏情况”(即每次除了枢纽元之外的元素全在s1或s2):T(n)=T(n-1)+cn。
我们用n-1不断替换n可以得到:
T(n-1)=T(n-2)+c(n-1),T(n-2)=T(n-3)+c(n-3)...T(2)=T(1)+c(2)
依然是等式左右两边同时相加,
得到:T ( n ) = c ( 2 + 3 + . . . + n ) ,T(n)=O(n^2)。
最后,对于平均情况,因为对于s1,每个大小都是等可能的,所以都有1/n的可能:
![6b649fe6e6bdae22a26566ce19d68862.png](https://i-blog.csdnimg.cn/blog_migrate/b62725d683b5e84dddfe35ebcd629c30.png)
![59ca3643e1cdb40099f070b3814a92b3.png](https://i-blog.csdnimg.cn/blog_migrate/f371faaa7f01ee72d40d4ed537ab18ef.png)
好了,以上就是我们本期专业资讯带来的两种排序算法。同学们,你们学会了吗?
![115b4fff88ca2b4f6ee101e85b930e80.png](https://i-blog.csdnimg.cn/blog_migrate/77715019d2f7e73302ffc9958acdb15f.jpeg)
推荐阅读
No.1 || 学习之星胡溢洋
No.2 || 我院成功举办第十四届团支部风采大赛
No.3 || 我院学生在“蓝桥杯”比赛中获佳绩
No.4 || 我院成功举办第二届算法竞赛
No.5 || 以篮球之名,展数计风采
![a66a4d7225898c6c0932996ee9e97d4b.gif](https://i-blog.csdnimg.cn/blog_migrate/8ddbdff71116edc79a6e90b19bc96128.gif)
武汉轻工大学数学与计算机学院
--whpu sjxy--
材料来源:算法协会
图文编辑:朱加骏
审核编辑:孙晓媛
审核老师:张俊
投稿邮箱:1870285752@qq.com
![524b7e4078f7d7213bf56039cfca1e44.png](https://i-blog.csdnimg.cn/blog_migrate/da27a3710678108eab03b3df97d08aed.jpeg)
心慕数计久
惟愿此间留
扫码关注我们