前言
离初赛只有两天了,写这篇博客可能也没多大作用
边刷初赛题边记录一下坑点
就当把自己跳过的坑给后人埋上吧
祈祷我不要初赛退役(笑)
排序算法的稳定性
排序算法的稳定性是指,如果有两个元素\(i=j\),排序后他们的位置关系不变
(即相同值的不同元素在排序前后相对位置不变)
而不是指时间复杂度不会退化!
常见的排序方法比较
- 冒泡排序:由于两两之间比较,前者比后者大才交换位置,所以相同大小的元素位置不会交换。是稳定的
- 选择排序:每次操作中会无顾忌地选择小元素交换位置,会破坏稳定性。不稳定
- 插入排序:从最小的序列开始,每次插到自己合适的位置,对其他元素没有影响。稳定
- 快速排序:很显然的不稳定排序
- 归并排序:合并过程中可以保证元素的位置。稳定
- 基数排序:按位操作的排序方式,属性各自拥有优先级。稳定
- 希尔排序:没详细了解过,反正是不稳定的
- 堆排:用堆的性质更改元素序列,过程中的旋转可能会破坏稳定性。不稳定