搞懂排序(稳定和非稳定性)

目录

一.稳定性概念

1.1使用考虑

1.2排序思路

二.排序解析

冒泡排序

插入排序

选择排序

希尔排序

快速排序

归并排序

堆排序

计数排序


一.稳定性概念

排序稳定性是指在排序算法中,具有相同键值的元素在排序前后保持原有的相对顺序不变的性质

排序算法的稳定性是一个重要的特性,它在某些应用场景中非常关键。例如,在多关键字排序或者排序对象包含多个相关属性时,稳定性可以确保当元素的某些属性值相同时,它们按照其他属性的排序仍然保持一致。这样可以防止数据在排序过程中出现意外的变动,从而影响后续的处理或决策。

 

1.1使用考虑

假设要对考试成绩进行排名;它们的成绩为:100 99 98 98 98 98 98

我要选出前3名,那么我该选择哪个第98为第三名,考98的同学谁先交试卷那么我就选谁为第三名。

这个时候就必须使用稳定排序了。

它们有固定的交卷顺序。再使用稳定排序就可以排出相同成绩先交卷的同学了。

1.2排序思路

以下图为例,原数组通过排序变成如下情况,

可以看出,相同元素的相对位置排序完没有改变,则为稳定排序。

若排序后相同元素的相对位置发生变化,则为不稳定排序。

 

二.排序解析

冒泡排序

稳定排序

依次交换,每次选最大的出来

 

插入排序

稳定排序,元素相对位置没变

把需要比较的数与前面有序数据从后往前遍历比较

选择排序

不稳定排序,一趟选最大和最小的数

希尔排序

不稳定排序

快速排序

不稳定排序,key的取值为末尾

归并排序

稳定排序

 

堆排序

不稳定排序,这里构建大堆进行排序,5和5的相对位置发生改变

计数排序

稳定排序,按顺序来排序的

以上就是本期补齐的内容,欢迎参考指正,如有不懂,欢迎评论或私信出下期!!!   

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锻炼²

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值