408考研之数据结构的排序——冒泡排序和快速排序

本人参考王道考研视频写作,如有侵权会即刻删除

TIPS:交换排序中,冒泡排序基本上涉及不多;快排不管是大题小题都是高频考点:快排算法建议直接暴力解决,实在不会当成考研八股文背诵,一旦遇到排序算法直接背诵拿分。

交换排序的定义:根据序列中两个元素关键字的比较结果来交换这俩个记录在序列中的位置。

考研中交换排序可分为:冒泡排序和快速排序。

冒泡排序——bubble sort:从前往后/从后往前,两两比较两相邻元素的值,若为逆序则交换,直到序列比较完成,为一趟冒泡排序,此时确定了一个值的位置;N个关键字最多可经过N-1趟冒泡可完成排序。

上例为从后往前,依次两两比较相邻元素,如果是逆序则交换,经过一整趟排序后,关键字最小的值已经得出,以此类推。

总结:冒泡排序的算法空间复杂度为:O(1);时间复杂度为:O(N^2);冒泡排序是稳定的;适用于顺序表和链表。(个人理解:如果是链表的话,可按照从前往后的顺序遍历链表,一趟排序可找出一个最大的关键字,符合冒泡排序的定义)

TIPS:快排代码特别重要,一定要会熟练理解,直至默写,因为考研一旦遇到排序,可以无脑写快排,建议当成文科背诵快排算法。

快速排序——quick sort,算法思想:选择一个枢轴元素,通过一趟排序,确定一个枢轴元素的最终位置,同时将大于枢轴元素的值放置在枢轴元素的右边,小于枢轴元素的值放置在枢轴元素的左边,然后对划分后的枢轴元素两边的子表进行递归定义即可。

总结:快速排序的空间复杂度为O(递归层数)=O(log2 n),平均时间复杂度为O(n*递归层数)=O(nlog2 n);快排是不稳定的。

上一篇: 408考研之数据结构的排序——插入排序和希尔排序
下一篇: 408考研之数据结构的排序——快速排序的算法
Rukia0213
博客等级 码龄4年 12粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值