快速排序法是一種高效的排序演算法,採用分治法的策略。它選擇一個元素作為「樞紐」(pivot),然後將陣列分成兩部分:一部分是所有小於樞紐的元素,另一部分是所有大於或等於樞紐的元素。
隨後遞迴地對這兩個部分進行相同的排序過程,直到整個陣列排序完成。由於採用分治法,快速排序在平均情況下效率非常高。
| 情境 | 時間複雜度 (Time Complexity) | 空間複雜度 (Space Complexity) |
|---|---|---|
| 最佳情況 (Best Case) | O(n log n) - 樞紐元素正好將陣列平分 | O(log n) - 遞迴調用棧深度 |
| 平均情況 (Average Case) | O(n log n) | O(log n) - 遞迴調用棧深度 |
| 最壞情況 (Worst Case) | O(n²) - 樞紐每次都選到最小或最大元素 |
* 穩定性 (Stability):不穩定 (Unstable),因為分割過程中相同值的元素相對位置可能改變。
點擊「開始排序」觀察快速排序的過程。橙色代表樞紐元素,紅色代表正在比較,綠色代表已經排序完成。