社区
数据结构与算法
帖子详情
怎样理解选择排序算法的不稳定?
sadly_coder
2011-08-10 10:04:37
所谓不稳定是指什么?
google了一下 ,有人举例:
序列5 8 5 2 9,第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。
我不理解的是,破坏顺序有什么关系? 如果以节约时间为目的,选择排序似乎肯定要比冒泡排序好些,是这样吧?
求解,谢谢。
...全文
1140
8
打赏
收藏
怎样理解选择排序算法的不稳定?
所谓不稳定是指什么? google了一下 ,有人举例: 序列5 8 5 2 9,第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。 我不理解的是,破坏顺序有什么关系? 如果以节约时间为目的,选择排序似乎肯定要比冒泡排序好些,是这样吧? 求解,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljsspace
2011-08-10
打赏
举报
回复
数据结构中存储的只是key值,并不是value。如果只是value,就不存在这个问题了。
孤独小剑
2011-08-10
打赏
举报
回复
楼主很聪明,数据结构书上也有定义的……
sadly_coder
2011-08-10
打赏
举报
回复
2
貌似我得到答案了:
简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就
说这种排序方法是稳定的。反之,就是非稳定的。
yan123wwwy
2011-08-10
打赏
举报
回复
有时候根据一个关键字排序,就有可能破坏有关联的另一关键字的顺序
justlovetao
2011-08-10
打赏
举报
回复
1
他们两个的效率要根据具体的数据有不同的结论。主要是特殊的数据是递增还是递减,不过通常情况下选择排序的效率还是比较高的!
我们现在所做的拿数据简单的做测试对破坏顺序当然没什么关系。但是如果是那结构体来排序呢?比如一个结构体里面包含一个人的学号和分数,要求在分数相等的情况下再按照学号排序,这个时候顺序就有关系了
flylee
2011-08-10
打赏
举报
回复
比如对某种数据类型,它由键和satellite数据组成
以键为基准,对拥有相同键的两个数据,如果排序可能会改变satellite数据的相对位置,则排序是不稳定的
pzcwh360
2011-08-10
打赏
举报
回复
看看数据结构就知道了。。。
sadly_coder
2011-08-10
打赏
举报
回复
[Quote=引用 5 楼 gdujian0119 的回复:]
楼主很聪明,数据结构书上也有定义的……
[/Quote]
有定义……
Java常用排序
算法
&程序员必须掌握的8大排序
算法
+二分法查找
Java常用排序
算法
&程序员必须掌握的8大排序
算法
+二分法查找 Java常用排序
算法
&程序员必须掌握的8大排序
算法
+二分法查找
1000多种java
算法
大全源码包
1000多种java
算法
大全源码包
十三个经典
算法
研究PDF文档[带目录+标签]
本文件是十三个经典
算法
研究+红黑树系列的,带目录+标签的PDF文档。在此之前,网上绝无仅有。希望,对你有帮助。博客地址为:http://blog.csdn.net/v_JULY_v。
结构之法
算法
之道全部博文集锦第三期CHM文件
此份CHM文件是从2010年10月11日至2011年7月8日,结构之法
算法
之道- CSDN博客内全部博文集锦的第三期CHM文件。
排序
算法
-
稳定
与不
稳定
稳定
排序与不
稳定
排序关于十大经典排序
算法
什么是
稳定
/不
稳定
性质
稳定
的好处
稳定
的排序
算法
——冒泡排序、插入排序、归并排序、基数排序1. 冒泡排序 - O(n^2^)2. 插入排序 - O(n^2^)3. 归并排序 - O(n log~2~n)4. 基数排序 - O(d(r+n))不
稳定
的排序
算法
——
选择排序
、快速排序、希尔排序、堆排序1.
选择排序
- O(n^2^)2. 快速排序 - O(n lo...
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章