社区
数据结构与算法
帖子详情
怎样理解选择排序算法的不稳定?
sadly_coder
2011-08-10 10:04:37
所谓不稳定是指什么?
google了一下 ,有人举例:
序列5 8 5 2 9,第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。
我不理解的是,破坏顺序有什么关系? 如果以节约时间为目的,选择排序似乎肯定要比冒泡排序好些,是这样吧?
求解,谢谢。
...全文
1243
8
打赏
收藏
怎样理解选择排序算法的不稳定?
所谓不稳定是指什么? google了一下 ,有人举例: 序列5 8 5 2 9,第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。 我不理解的是,破坏顺序有什么关系? 如果以节约时间为目的,选择排序似乎肯定要比冒泡排序好些,是这样吧? 求解,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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]
有定义……
不
稳定
的直接
选择排序
本文深入解析
选择排序
算法
,从直观
理解
到代码实现,再到其时间复杂度和
稳定
性分析,最后通过实例对比
稳定
与不
稳定
排序的区别。
不
稳定
的排序
算法
记忆口诀
本文探讨了四种不
稳定
的排序
算法
——快速排序、
选择排序
、堆排序和希尔排序。通过‘快选对象不
稳定
’的记忆法,帮助读者
理解
它们的特性。这些
算法
在信息技术领域中有着广泛的应用,但其不
稳定
性可能对特定数据集产生不同影响。
九种排序
算法
——直接
选择排序
(不
稳定
)
本文详细介绍了直接
选择排序
算法
的原理,通过C++代码展示了如何在一个整数数组中进行排序,并通过实例演示了其不
稳定
性的特点。深入
理解
并掌握这个基本排序
算法
有助于提升程序设计能力。
java实现
选择排序
本文介绍了
选择排序
算法
,详细阐述了其工作原理,并通过动图演示和代码实现来帮助
理解
。
选择排序
是一种简单直观的排序
算法
,平均、最好和最坏情况的时间复杂度均为O(n²),空间复杂度为O(1),属于不
稳定
的排序
算法
。
排序
算法
--python实现
选择排序
本文介绍了一种简单直观的排序
算法
——
选择排序
,并通过具体的代码示例展示了如何实现该
算法
。
选择排序
是一种不
稳定
但易于
理解
的排序方法,在某些特定场景下仍具有一定的应用价值。
数据结构与算法
33,025
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章