1. 冒泡排序:稳定,因为相同元素不会交换位置。
2. 插入排序:稳定,因为在进行插入时,只有前面比该元素大才会往右移动,不会打乱相同元素的顺序。
3. 归并排序:稳定,因为合并两个子序列时,相同元素的顺序不会改变。
4. 计数排序:稳定,因为是通过计数来确定每个元素的位置,相等的元素计数会累加到同一个位置上。
5. 基数排序:稳定,因为是从低位到高位依次排序,相同位上相同的元素顺序不会改变。
6. 桶排序:稳定,和计数排序类似,也是通过计算出每个元素所在的桶来实现排序,相等的元素会被放到同一个桶中。
7. TimSort:稳定,它结合了归并排序和插入排序,保证了相同元素的顺序不变。
8. 稳定选择排序:稳定,类似选择排序,但是交换元素的条件是当前元素不是最小值而是第一个等于最小值的元素,保证了相同元素的顺序不变。
9. 希尔排序:不稳定,因为进行分组时,相同元素可能分配在不同的组中,在后续的排序中顺序可能会改变。
10. 快速排序:不稳定,因为通过交换元素来实现排序,相同元素有可能在交换过程中被打乱顺序。