稳定的和不稳定的排序算法

首先看结论:不稳定的排序算法:快、希、选、堆。(找到工作就可以选一对美女来玩了)

不稳定:相同元素的相当对顺序被改变

快速排序:快速排序的比较和交换是跳跃进行的,所以不稳定  O(nlogn)

希尔排序:希尔排序是按照不同的步长对元素插入排序,第一次插入排序时是有序的,但在不同的插入排序过程中,相同元素的顺序可能被打乱 O(nlogn)

选择排序:举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。

               在一趟选择,如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。(n*2)

堆排序:  不稳定

稳定:

冒牌排序:依次的比较和交换,不会改变两个相等元素的位置 O(n*2)

插入排序:从未排序序列中选择最小的一个放在已排序数组中,不会改变相对位置O(n*2)

归并排序:分治法,O(nlogn)

桶排序: O(n*1.3)

posted on 2018-09-05 16:27  Aaron12  阅读(2049)  评论(0编辑  收藏  举报

导航