🎯 選擇排序法演示
操作原理
把陣列分成「已排序區」與「未排序區」。
每一輪從未排序區中找出最小值。
將最小值與未排序區的第一個位置交換,放到正確位置。
未排序區向右縮小一格,重複直到完成排序。
操作過程步驟
外圈索引 i 代表本輪要放置最小值的位置。
先假設 i 就是最小值索引 minIndex。
內圈索引 j 從 i + 1 開始掃描到陣列尾端,持續更新 minIndex。
內圈結束後,若 minIndex 不等於 i,就交換兩者。
i 往右移動一格,重複以上步驟,直到 i = n - 2。
時間複雜度分析
最壞情況:O(n²)
每一輪都要掃描整個未排序區找最小值,總比較次數為二次方等級
平均情況:O(n²)
一般隨機資料下,比較次數仍與 n² 成正比
最佳情況:O(n²)
即使資料已接近排序,仍需要完整掃描來確認最小值
空間複雜度:O(1)
原地排序,僅使用常數個額外變數;交換次數通常少於氣泡排序
視覺化演示
按下「開始排序」觀察每輪如何選出最小值
已排序
目前位置 i
掃描中 j
當前最小值 minIndex
開始排序
重置
比較次數:
0
交換次數:
0