博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法的稳定问题
阅读量:3907 次
发布时间:2019-05-23

本文共 448 字,大约阅读时间需要 1 分钟。

什么是排序算法的稳定

简单的来说,稳定的排序算法在排序结束之后数值相同的数组的下标顺序是保持原来的顺序的,反之就不是稳定的

实例说明

例如a[ ]={2,4,1,5,7,7,6}

还没有排序前

数组下标 数值
0 2
1 4
2 1
3 5
4 7
5 7
6 6

稳定排序后

数组下标 数值
0 1
1 2
2 4
3 5
4 6
5 7
6 7

不稳定排序

数组下标 数值
0 1
1 2
2 4
3 5
4 6
6 7
5 7

分析

如果排序结束后,a[5]可以保证一 定在a[6]前面, 也就是他们原有的顺序不变,那这种排序算法就是稳定的。(比如常见的冒泡排序、基数排序、插入排序.归并排序、桶排序、二叉树排序等都是稳定的排序算法)

反之,如果不能保证原有顺序,这种算法就是不稳定的。(比如常见的选择排序, 希尔排序,堆排序,快速排序等都是不稳定的排序算法)

快速记忆不稳定的排序算法的顺口溜可以这么说,快去选择一些朋友扎堆聊天

快:快速排序,选择:选择排序, 些:希尔排序,堆:堆排序。

转载地址:http://ggren.baihongyu.com/

你可能感兴趣的文章
linq 查询的结果会开辟新的内存吗?
查看>>
WPF开发的实用小工具 - 快捷悬浮菜单
查看>>
.Net orm 开源项目 FreeSql 2.0.0
查看>>
多线程并发如何高效实现生产者/消费者?
查看>>
学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
查看>>
IdentityServer4系列 | 简化模式
查看>>
如何在 C# 中使用 AutoMapper
查看>>
BCVP开发者说第4期:Remember.Core
查看>>
Entity Framework Core 5中实现批量更新、删除
查看>>
小试YARP
查看>>
如何使用 C# 中的 HashSet
查看>>
api-hook,更轻量的接口测试工具
查看>>
一个情怀引发的生产事故(续)
查看>>
做架构也得讲武德
查看>>
PHP大势已去,PHP宝藏可为我所用
查看>>
asp.net core 集成 prometheus
查看>>
如何在 .NET 中使用 Redis缓存
查看>>
C#阻塞队列BlockingCollection
查看>>
在传统行业做数字化转型之业务篇
查看>>
如何在 C# 中使用 RabbitMQ
查看>>