首先看结论:不稳定的排序算法:快、希、选、堆。(找到工做就能够选一对美女来玩了)算法
不稳定:相同元素的至关对顺序被改变数组
快速排序:快速排序的比较和交换是跳跃进行的,因此不稳定 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)