面试中很多时候会考察排序算法的稳定性,在此特为排序算法稳定性做一个分类。
稳定排序:基数排序、冒泡排序、直接插入排序、归并排序
不稳定排序:快速排序、希尔排序、堆排序、直接选择排序
其中选择排序容易混淆,举个例子来说明:序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。
面试中很多时候会考察排序算法的稳定性,在此特为排序算法稳定性做一个分类。
稳定排序:基数排序、冒泡排序、直接插入排序、归并排序
不稳定排序:快速排序、希尔排序、堆排序、直接选择排序
其中选择排序容易混淆,举个例子来说明:序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。