什么是稳定排序?
假设我们有如下序列: 5 1 , 1 , 3 , 5 2 {5_1, 1, 3, 5_2} 51,1,3,52,其中有两个相同的 5 5 5;稳定排序与不稳定排序分别如下:
- 稳定排序: 1 , 3 , 5 1 , 5 2 {1, 3, 5_1, 5_2} 1,3,51,52;两个 5 5 5 的顺序没有变;
- 不稳定排序: 1 , 3 , 5 2 , 5 1 {1, 3, 5_2, 5_1} 1,3,52,51;两个 5 5 5 的顺序发送了变化;
稳定排序的意义:
假设期末的考试的时候,计算机一班的 C 同学,二班的 B 同学,三班的 A 同学,《程序设计课程》都是 90 90 90 分,录入成绩的时候是按照班次分别录入的 9 0 C , 9 0 B , 9 0 A {90_C, 90_B, 90_A} 90C,90B,90A,年纪还有一个 100 100 100 分和 95 95 95分的。最终排名优先按分数,其次按姓氏字母顺序排列,最终的单科排名就成为为: 100 , 95 , 9 0 A , 9 0 B , 9 0 C {100, 95, 90_A, 90_B, 90_C} 100,95,90A,90B,90C。
- 原数据: 9 0 C , 9 0 B , 9 0 A , 100 , 95 {90_C, 90_B, 90_A, 100, 95} 90C,90B,90A,100,95;
- 稳定排序: 100 , 95 , 9 0 C , 9 0 B , 9 0 A {100, 95, 90_C, 90_B, 90_A} 100,95,90C,90B,90A;
- 不稳定排序: 100 , 95 , 9 0 A , 9 0 B , 9 0 C {100, 95, 90_A, 90_B, 90_C} 100,95,90A,90B,90C;
假设前三名有奖金,稳定排序和不稳定排序获奖人是不一样的。
哪些些排序方法一定是稳定排序
一定是稳定排序的算法有:计数排序。