一、稳定性
排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。
稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。
以上三种排序具体原理及代码实现:常用排序(冒泡、快速、选择)
1、冒泡排序(稳定)
冒泡排序是比较相邻两个元素的值的大小,当相邻元素的值相等时,这两个元素不会交换位置,因此冒泡排序不会改变相等元素的前后位置,所以是稳定的。2、快速排序(不稳定)
快速排序需要指定一个基准数,两个指针i,j,当i和j相遇时就会交换此时i,j所共同指向的那个位置的元素A[i](A[j])与基准数,这时就很容易发生相等元素前后位置的调换了。比如,7,3,3,4,3,8,9这个序列,当一次排序最后,就会调换中间3于基准数7的位置,所以不稳定。3、选择排序(不稳定)
选择排序是每次选择一个最大的元素放在数组的倒数第i个位置上,所以当有相等的元素时,就会造成前后顺序改变的情况,因此是选择排序是不稳定的。
以下三种排序具体原理及代码实现: