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