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

首先看結論:不穩定的排序算法:快、希、選、堆。(找到工做就能夠選一對美女來玩了)算法

不穩定:相同元素的至關對順序被改變數組

快速排序:快速排序的比較和交換是跳躍進行的,因此不穩定  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)

相關文章
相關標籤/搜索