stable排序
O(n^2): InsertionSort,BubbleSort
O(nlgn): MergeSort
O(n+k): CountSort, RadixSort
non-stable排序
O(n^2): SelectionSort
O(nlgn): QuickSort
舉個例子,序列5 8 5 2 9, 我們知道第一遍選擇第1個元素5會和2交換,那麼原序列中2個5的相對前後順序就被破壞了,所以選擇排序不是一個穩定的排序算法
排序的穩定性,就是指,在對a關鍵字排序後會不會改變其他關鍵字的順序。
比如排序(2,3,1(第一個),1(第二個),5,6)
不穩定的排序,可能會排出
(1(第二個),1(第一個),2,3,5,6);
而穩定的排序則不會,在比較的關鍵字相同的情況下,穩定的排序會將較早出現的元素排在前面。