假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
原始数据 | 19 | 23 | 6 | 8 | 11 | 8 | 9 |
稳定排序
序号 | 3 | 4 | 6 | 7 | 5 | 1 | 2 |
稳定排序 | 6 | 8 | 8 | 9 | 11 | 19 | 23 |
不稳定排序
序号 | 3 | 6 | 4 | 7 | 5 | 1 | 2 |
不稳定排序 | 6 | 8 | 8 | 9 | 11 | 19 | 23 |
总结:
稳定的排序:冒泡排序,插入排序,归并排序,基数排序。
不稳定的排序:堆排序,快速排序,希尔排序,选择排序。