選擇排序(Selection Sort)
選擇排序(Selection Sort)
介紹
選擇排序是反覆進行搜尋數列中最小值並與最左邊的數值對調,選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多(n-1)次交換,比較次數第一回合(n-1)次,第二回合(n-2)次….到第n-1回合一次,因此是 (n-1) + (n-1) + ... + 1 ≈ n^2/2,時間複雜度跟泡沫排序一樣是O(n^2)。

(圖片來源)
虛擬碼
function selection_sort (array) { |
複雜度
時間複雜度
無論資料順序如何,都會執行兩個迴圈
$O(n^2)$
空間複雜度
$O(1)$
實戰
題目說明
給定一個數組 nums,其中有 n 個對象,顏色為紅色、白色或藍色,並對它們進行排序,顏色按紅色、白色和藍色的順序排列。 將使用整數 0、1 和 2 分別表示紅色、白色和藍色。 必須在不使用library的排序功能的情況下解決此問題。

解法
使用選擇排序解題。
首先取得陣列內最小值並與最左邊的數值做對調,再取得最小值與左二數值對調(因為最左邊已經是最小值),依此類推。
Javascript
/** |
[name=@joe94113] [time=Wed, Oct 26, 2022 04:00 PM] [color=#907bf7]
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Joeの小屋!
評論
ValineDisqus




