排序算法的稳定性定义:
一个数组中几个相同的关键字经过排序以后相对位置仍然不变,那么称改排序算法的是稳定的。
举个例子,在一个数组中,紫色的10排在红色的10前面,经过排序算法之后,紫色的10位置仍然排序红色的10之前,那么这个算法就是稳定的。
下面是几种排序算法的总结:
1.冒泡排序:
稳定
2.选择排序:
2.1.若为交换数值式的排序算法,则为不稳定
2.2.若为插入式的排序算法(多应用于链表当中),则稳定
3.插入排序:
稳定
4.快速排序:
不稳定
5.希尔排序:
不稳定
6.归并排序:
稳定
7.堆排序:
不稳定
8.基数排序:
稳定