⚡ 快速排序法演示
操作原理
選一個基準值(pivot),把陣列分成小於與大於 pivot 的兩側。
pivot 排到最終正確位置後,左右兩側可獨立排序。
對左子陣列、右子陣列重複同樣分割。
遞迴結束後,整體陣列即完成排序。
操作過程步驟
呼叫 quickSort(low, high)。
若 low >= high,該區間已完成。
執行 partition:以最右元素作為 pivot。
掃描 low..high-1,把小於等於 pivot 的元素移到左側。
最後把 pivot 交換到分界位置 p。
遞迴排序 [low..p-1] 與 [p+1..high]。
時間複雜度分析
最壞情況:O(n^2)
每次分割都非常不平均(例如已排序資料且 pivot 取邊界)
平均情況:O(n log n)
隨機資料下,分割通常較平均,效率很好
最佳情況:O(n log n)
每次都能接近對半分割
空間複雜度:O(log n)
主要來自遞迴呼叫堆疊(平均)
視覺化演示
按下「開始排序」觀察 pivot 分割與遞迴排序流程
目前分割區間
pivot
比較中
交換中
排序完成
開始排序
重置
比較次數:
0
交換次數:
0