Fra*_*zzi -1 sorting algorithm
在计算机科学中,稳定的排序算法使用相等的密钥保留记录的顺序.
我只是不明白为什么某些排序算法是稳定的而其他排序算法没有.基本排序算法对int数组的项进行排序.如果我创建一个类或结构,并且我使用相同的算法考虑交换整个对象,并选择按键排序,按年龄ecc,那么每个算法都可以保留记录的顺序!
我想我错过了这个定义.
非常感谢.
Yuu*_*shi 10
假设您有一个如下所示的数组:
a = [5, 4, 2a, 2b, 1]
Run Code Online (Sandbox Code Playgroud)
其中,a并且b只是表示第一个2(2a)在第二个2(2b)之前.在稳定的排序算法中,结果将是:
a_stable = [1, 2a, 2b, 4, 5]
Run Code Online (Sandbox Code Playgroud)
也就是说,元素的相对顺序没有改变 - 在原始数组中2a出现之前2b,它在排序数组中保持这种状态.
使用非稳定算法,结果可能是:
a_nonstable = [1, 2b, 2a, 4, 5]
Run Code Online (Sandbox Code Playgroud)
这仍然是正确排序的,它只是相对于它们在原始未排序数组中的位置现在已经改变了.