您好,我正在研究代码稳定选择排序,我已经能够得到正确的结果,但我不确定代码中是否存在极端情况。我正在这样排序的数据
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/