排序演算法 (Sorting Algorithms)

將無序資料轉變為有序序列的經典演算法

排序演算法分類

排序演算法可分為比較排序與非比較排序兩大類。比較排序的理論下限為 O(n log n),而非比較排序可達到 O(n)。

常見排序演算法

氣泡排序 (Bubble Sort):重複走訪數列,相鄰元素兩兩比較,大的向後移。時間 O(n²),空間 O(1)。

合併排序 (Merge Sort):分治策略,將數列分成兩半分別排序再合併。時間 O(n log n),空間 O(n)。

快速排序 (Quick Sort):選 pivot 分區,左小右大。平均 O(n log n),最壞 O(n²)。

堆積排序 (Heap Sort):利用最大堆積進行排序。時間 O(n log n),空間 O(1)。

時間複雜度比較

演算法最好平均最壞空間穩定
氣泡排序O(n)O(n²)O(n²)O(1)
選擇排序O(n²)O(n²)O(n²)O(1)
插入排序O(n)O(n²)O(n²)O(1)
合併排序O(n log n)O(n log n)O(n log n)O(n)
快速排序O(n log n)O(n log n)O(n²)O(log n)
堆積排序O(n log n)O(n log n)O(n log n)O(1)

本課程範例

相關連結