六大排序算法的稳定性详解

1.稳定性的概念

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

2.六大排序的稳定性

1.冒泡排序——稳定(相同不交换)

2.选择排序——不稳定(与后面的数字交换)

六大排序算法的稳定性详解_第1张图片

3.插入排序——稳定(相同不插入) 

4.希尔排序——不稳定(可能会分到不同的组预排)

5.堆排序——不稳定(建堆和交换的时候都可能会乱)

6.快速排序——不稳定(可能会变成中间值)

六大排序算法的稳定性详解_第2张图片

结论:快排中只有归并排序稳定,其他的就是冒泡插入

六大排序算法的稳定性详解_第3张图片

你可能感兴趣的:(数据结构,排序算法,数据结构,算法)