一 概述
在排序算法中有一类可以被划分为交换排序,如常见的冒泡排序,快速排序等,这些需要通过排序项的两两比较然后交换位置,此时就涉及到算法的稳定性了。
二 稳定性
若待排序表中有两个元素A和B,其对应的关键字相同即KeyA=KeyB,在执行排序之前A是排在B的前面。若使用某一排序算法排序之后,当A和B的前后顺序没有发生改变的时候,此时的排序算法就是稳定的。
当只是数值比较排序的时候,对于数值相同排序,算法的稳定并不会影响到排序结果,但是当排序对象存在其他特定的属性差异的,而且这个必须考虑的时候,我们就需要进行考虑了。
总结:我们需要理解的是算法的稳定性并不是衡量一个算法的优劣,它只要是对算法特性的一种描述。
对排序算法的稳定性,我们只需要给出一个能够证明不稳定的实例即可。