選擇

在電腦科學中,選擇排序是排序演算法,特別是就地比較排序。它具有 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 大學