首先看結論:不穩定的排序算法:快、希、選、堆。(找到工做就能夠選一對美女來玩了)算法
不穩定:相同元素的至關對順序被改變數組
快速排序:快速排序的比較和交換是跳躍進行的,因此不穩定 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)