数据结构中的排序算法的稳定性

1.稳定性

就是一组数据,通过排序后,两个相等的a(红色和蓝色),如果红色的a依旧在蓝色a的前面则是稳定的,反之,则不稳定。

 数据结构中的排序算法的稳定性_第1张图片

 我们一个个看

1.冒泡排序,遇到相同的数时,可以不交换,所以显而易见稳定。

2.选择排序,有些人认为是稳定的,包括有些书上也说的是稳定的,但又一种情况,大家看一下。

红色的a确实在蓝色的a前面,可a + 1是无法控制的,所以选择排序不稳定。

数据结构中的排序算法的稳定性_第2张图片

3.插入排序,和冒泡差不多原理,稳定。

4.希尔排序,相同数据可能被分为不同组,所以不稳定。

5.归并排序,相同的数据,左边的先进tmp(新开辟的数组),所以稳定。

6.快速排序, 不稳定。(见下图)

数据结构中的排序算法的稳定性_第3张图片

7.对排序,不稳定。(见下图)

数据结构中的排序算法的稳定性_第4张图片

 

 数据结构中的排序算法的稳定性_第5张图片

 

 

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