排序算法複雜度比較

算法 時間複雜度 空間複雜度
快速排序 最優O(nlgn) 最差O(n²) O(1)
堆排序 O(nlgn) O(1)
歸併排序 O(nlgn) O(n)用來將兩個排好序的數組合並
選擇排序 O(n²) 每次都要遍歷一遍沒有最優 O(1)
插入排序 最優 O(n) 數組已經排序
最差 O(n²) 逆序排序
O(1)
冒泡排序 最優 O(n) 數組已經排序
最差 O(n²) 逆序排序
O(1)

快排雖然最差是O(n²),但平均仍是O(nlgn) 其中堆排序,快速排序,選擇排序是不穩定的算法,相等元素的相對位置會發生改變。 選擇排序,舉個例子,序列5 8 5 2 9, 咱們知道第一遍選擇第1個元素5會和2交換,那麼原序列中2個5的相對先後順序就被破壞了算法

快速排序,好比序列爲 5 3 3 4 3 8 9 10 11, 如今中樞元素5和3(第5個元素,下標從1開始計)交換就會把元素3的穩定性打亂數組

相關文章
相關標籤/搜索