選擇
在電腦科學中,選擇排序是排序演算法,特別是就地比較排序。它具有 O(n 2 )時間複雜度,使其在大型列表上效率低,並且通常比類似的插入排序更差。選擇排序因其簡單性而著稱,並且在某些情況下具有優於更復雜演算法的效能優勢,特別是在輔助儲存器有限的情況下。
下圖顯示了選擇排序的工作原理 -
http://i.stack.imgur.com/qa2Cg.gif
虛擬碼下面有助於建立程式(使用任何語言)或理解選擇排序。
procedure selection sort
list : array of items
n : size of list
for i = 1 to n - 1
/* set current element as minimum*/
min = i
/* check the element to be minimum */
for j = i+1 to n
if list[j] < list[min] then
min = j;
end if
end for
/* swap the minimum element with the current element*/
if indexMin != i then
swap list[min] and list[i]
end if
end for
end procedure
好處 :
- 理解起來太簡單了
- 它在一個小清單上表現良好
- 除了儲存原始列表所需的內容之外,不需要額外的臨時儲存
圖片參考:RMIT 大學