选择

在计算机科学中,选择排序是排序算法,特别是就地比较排序。它具有 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 大学