怎样理解选择排序算法的不稳定?

sadly_coder 2011-08-10 10:04:37
所谓不稳定是指什么?
google了一下 ,有人举例:

序列5 8 5 2 9,第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。

我不理解的是,破坏顺序有什么关系? 如果以节约时间为目的,选择排序似乎肯定要比冒泡排序好些,是这样吧?

求解,谢谢。
...全文
1078 8 打赏 收藏 转发到动态 举报
写回复
用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]


有定义……

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧