首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么选择排序不稳定?

为什么选择排序不稳定?
EN

Stack Overflow用户
提问于 2018-02-21 19:20:23
回答 1查看 3.2K关注 0票数 2

问题:I浏览了各种类型的列表,发现了一个非常有趣的所有类型稳定的图像。我不想问排序的稳定性意味着什么,因为它已经是answered.My问题了,selection 是如何不稳定的,因为它被广泛使用。

这里是排序的图像,它们的稳定性和复杂性:-

从图像中可以看到,最后一列为我们提供了每种类型的稳定性。

图片来源:-

otero/the-real-10-algorithms-that-dominate-our-world-e95fa9f16c04

我对快速排序和堆排序没有经验,但我习惯于选择排序,并在各种程序中使用它,从未发现过任何不稳定的行为。我知道,复杂明智的排序比选择排序要好得多,但实际工作是相同的,即按升序或降序排序和排列一组值,对吗?所以排序中的这种稳定性有点混乱,主要迫使我思考一种排序比另一种更稳定。

有人能解释我的不稳定行为和他们的稳定性如何不同的复杂性在这些分类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-21 20:45:12

使选择排序不稳定的是,交换一对元素的步骤可能会改变具有相同键的另一对元素的相对顺序。例如,在对数组排序时

代码语言:javascript
复制
2 2' 1

由于具有最小键的元素为1,因此必须将其推送到数组的最低位置,方法是用2交换1:

代码语言:javascript
复制
1 2' 2

用2交换1改变了两个相等元素(2‘和2)的相对顺序。

也就是说,两个键相等的元素在排序后的输出中的出现顺序与它们在输入数组中出现的顺序不同。因此,选择排序是不稳定的。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48913820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档