排序的稳定性

稳定性的概念

假设在数组中有两个相等的元素A,B且A在前B在后;当进行排序之后A和B的先后关系不变则称排序是稳定的

排序稳定性的意义

当一组数据只进行一次排序时稳定性是没有意义的,
当一组数据需要进行多次排序时稳定性是有意义的:
假设这样一种情况,一种商品我们需要先按价格排序,然后再按销量排序
如果排序是不稳定的,当我们按价格排序时A的价格大于B的价格排在了B的前面,当按照销量排序时A的销量和B的销量是相同的,不稳定的排序排完之后A排到了B的后面破坏了第一次排序的结果。
排序稳定性可以在多次排序中可以减少开销保持之前排序的意义。

稳定的排序

稳定的排序有:冒泡排序,插入排序,归并排序

不稳定的排序

快速排序:A,B都小于key值,当和比key值大的元素交换时可能会改变顺序。
选择排序:arr{5(A),6,5(B),2} 进行第一轮排序遍历之后A和2互换位置到了B的后面,改变了A,B之间的顺序
希尔排序:因为进行多次插入排序可能会将A,B分入不同的组内,在各自组内排序后,可能会改变A,B顺序。

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值