现在的位置: 首页 > 综合 > 正文

选择排序

2018年05月27日 ⁄ 综合 ⁄ 共 696字 ⁄ 字号 评论关闭

选择排序
  选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
   常用的选择排序方法有简单选择排序和堆排序。
简单选择排序
  简单选择排序(simple selection sort)也是直接选择排序。此方法在一些高级语言课程中做过介绍,是一种较为容易理解的方法。
1.
算法思想
  对于一组关键字{A1,A2,,An}, 首先(第1趟)从A1,A2,,An中选择最小值,假如它是 Az,则将Az与 A1对换;然后(第2趟)从A2,A3 ,An中选择最小值 Az,再将Az与A2对换。如此进行选择和调换n-2趟。

第(n-1)趟,从An-1、An中选择最小值 Az将Az与An-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成。
【例】是一个有5个关键字{3,4,1,5,2}的简单选择排序过程:

|3
4
1
5
2
1
|4
3
5
2
1
2
|3
5
4
1
2
3
|5
4
1
2
3
4
|5

ALGORITHM SelectionSort(A[0...n-1])

    //Sorts a given array by selection sort
    //Input: An Array A[0...n-1] of orderable elements
//Output: Array A[0...n-1] sorted in ascending order

for i←0 to n-2 do
min←i
for j←i+1 to n-1 do
if A[j]<A[min] min
←j

swap A[i] and A[min]

 

算法时间复杂度θ(n^2),空间复杂度θ(1)

该排序算法稳定。

【上篇】
【下篇】

抱歉!评论已关闭.