簡單總結:
| 比較排序算法 | 時間復雜度 | 空間復雜度| 穩定性|
| --- | --- | --- | --- | --- | --- |
| 簡單選擇排序 | `O(n^2)` | `O(1)` | 否|
| 冒泡排序 | `O(n^2)` | `O(1)` | 是|
| 直接插入排序 | `O(n^2)` | `O(1)` | 是|
| 歸并排序 | `O(n*logn)` | `O(n)` | 是|
| 快速排序 | `O(n*logn)` | `O(logn)` | 否|
| 堆排序 | `O(n*logn)` | `O(1)` | 否|
注意到一點:雖然歸并排序、快速排序和堆排序的時間復雜度是一樣的,但是實際上快速排序最快。但缺點在于會消耗更多的空間,且算法不具有穩定性。
對于穩定性,最直觀的案例就是淘寶購物篩選的時候,我們希望多次篩選后排序結果為所期望值。這個時候就需要使用穩定的排序算法。