algorithm - 选择可以稳定吗?

标签 algorithm sorting

您好,我正在研究代码稳定选择排序,我已经能够得到正确的结果,但我不确定代码中是否存在极端情况。我正在这样排序的数据
a[0]=新数据(1,'d');
a[1]=新数据(2,'c');
a[2]=新数据(3,'a');
a[3]=新数据(4,'b');
a[4]=新数据(5,'d');
a[5]=新数据(6,'c');
a[6]=新数据(8,'a');
a[7]=新数据(9,'a');
a[8]=新数据(10,'a');

如您所见,它是按数字排序的,我现在应该按字符排序。

所以我使用的各种数据对象的逻辑是这样的:

在寻找最小元素的循环中,我们不仅会找到最小元素,还会找到具有最小 int 的最小元素。这样元素的顺序将保持不变

即使它工作正常,我是否遗漏了任何特殊情况?

例如:让我们使用 iTunes,首先我们按歌曲的 ID 排序,然后我们要按歌曲的名称排序。我希望它能让一切都清楚

最佳答案

不,你没有错过任何东西。这是使任何不稳定算法稳定的标准技术:强加全序!任何关系都由第二个键解决 - 这是输入顺序。我假设您在此处正确实现了字典顺序,但您的描述并不完全清楚。

关于algorithm - 选择可以稳定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235602/

相关文章:

algorithm - 用有限的信息计算总的批量上传传输百分比

sorting - 自顶向下归并排序的优点是什么?

c++ - 修改排序数组还是每次都对数组排序?

javascript - 如何计算JavaScript数组中变量重复的次数?

python - 获取排序的索引列表,用于按给定键排序的字典列表

c++ - 使用 Boost lambda 和绑定(bind)排序时出错

c# - 计算 pow(45,60) mod 61

c++ min max 与按引用调用相关的问题

algorithm - 在线性时间内准备数组以找到 O(k) 中的 k 个最小元素

algorithm - 一种基于类的最短路径算法