🎯 選擇排序法演示

操作原理

  1. 把陣列分成「已排序區」與「未排序區」。
  2. 每一輪從未排序區中找出最小值。
  3. 將最小值與未排序區的第一個位置交換,放到正確位置。
  4. 未排序區向右縮小一格,重複直到完成排序。

操作過程步驟

  1. 外圈索引 i 代表本輪要放置最小值的位置。
  2. 先假設 i 就是最小值索引 minIndex。
  3. 內圈索引 j 從 i + 1 開始掃描到陣列尾端,持續更新 minIndex。
  4. 內圈結束後,若 minIndex 不等於 i,就交換兩者。
  5. i 往右移動一格,重複以上步驟,直到 i = n - 2。

時間複雜度分析

最壞情況:O(n²)
每一輪都要掃描整個未排序區找最小值,總比較次數為二次方等級
平均情況:O(n²)
一般隨機資料下,比較次數仍與 n² 成正比
最佳情況:O(n²)
即使資料已接近排序,仍需要完整掃描來確認最小值
空間複雜度:O(1)
原地排序,僅使用常數個額外變數;交換次數通常少於氣泡排序

視覺化演示

按下「開始排序」觀察每輪如何選出最小值
已排序
目前位置 i
掃描中 j
當前最小值 minIndex
比較次數: 0
交換次數: 0