Selection Sort
演算法原理:
- 將數組分為已排序區域和未排序區域
- 在未排序區域中找到最小元素
- 將找到的最小元素與未排序區域的第一個元素交換
- 重複步驟2-3,直到所有元素都排序完成
時間複雜度分析:
- 最壞情況(Worst Case): O(n²)
- 外層循環執行 n-1 次
- 內層循環第一次執行 n-1 次,第二次 n-2 次,依此類推
- 比較次數:(n-1) + (n-2) + … + 1 = n(n-1)/2
- 交換次數:最多 n-1 次
- 最好情況(Best Case): O(n²)
- 即使數組已經排序
- 仍然需要執行所有的比較操作
- 只是交換次數可能減少
- 平均情況(Average Case): O(n²)
- 與最壞情況相同
- 選擇排序的特點是比較次數固定
空間複雜度:
- O(1),只需要一個臨時變量來進行交換
選擇排序的特點:
- 優點:
- 實現簡單
- 交換次數少(最多 n-1 次)
- 對於小規模數據較為高效
- 缺點:
- 時間複雜度固定為 O(n²)
- 對於大規模數據效率低
- 不穩定排序(相同值的相對順序可能改變)
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 YouChen's Blog!