稳定排序与不稳定排序的区别

排序算法详解:稳定与不稳定
本文详细介绍了稳定排序和不稳定排序的区别。稳定排序包括插入排序、冒泡排序、归并排序和基数排序,它们在排序过程中保持相等元素的相对顺序不变。而选择排序、快速排序、希尔排序和堆排序则是不稳定排序,可能改变相等元素的顺序。例如,快速排序中的基准元素交换可能导致相等元素的位置变化,而堆排序在输出堆顶元素时也可能破坏稳定性。

稳定和不稳定排序详解

参考:https://www.jianshu.com/p/7c03e5eb143c

稳定排序有:插入排序、冒泡排序、归并排序、基数排序

不稳定排序有:选择排序、快速排序、希尔排序、堆排序

稳定排序

插入排序

  • 在一个有序的序列中插入一个数,使插入后的序列保持有序。

  • 因为插入的过程中都是从后向前进行查找,遇到小于等于(或大于等于)的数停止寻找,进行插入操作。

  • 不改变排序前后相等数值的相对顺序,故使稳定的排序算法。

冒泡排序

  • 冒泡故名思义,数值小的向上飘,数值大的向下沉,向上飘的数遇到的小于等于当前数的值停止,向下沉的数遇到大于等于当前数的数停止,

  • 类似于对于向上飘的数有个排序之前在其前面数值相等限制了其向上飘的脚步,原先在俺之下,排序后也在俺之下,向下沉也是同理。故也是稳定的排序算法。

归并排序

  • 将一段序列分为若干个小序列进行排序,排序后的小序列进行合并得到最后的排序结果。

  • 主要运用了分治的思想。

    • 分成的前后若干个小序列在最后进行合并时本身就包含了前后位置信息,在合并时不改变相同值在排序前后的相对顺序,故归并排序也是稳定排序。

基数排序

  • 按从低到高的相应位的值进行排序,也是稳定排序算法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WalkerShen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值