算法学习(7):排序算法稳定性问题

排序算法总结

排序稳定性

概念:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

选择排序

做不到稳定性

冒泡排序

可以做到,相邻两个数相等时不交换

插入排序

可以做到,相邻两个数相等时不交换

归并排序

可以做到,merge时,左右两边的数相等时,先拷贝左边的数

快速排序

做不到稳定性,partition过程导致的

堆排序

做不到稳定性,第一步把整个数组变成大根堆时就已经破坏了稳定性

不基于比较的排序

可以轻易地做到稳定性,因为放桶的时候是先进先出

posted @ 2022-07-20 14:42  小肉包i  阅读(20)  评论(0)    收藏  举报