简单选择排序

选择排序

选择排序(selection sort)的基本思想是,每一趟在n-i+1(i = 1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。

在选择排序中最简单的是简单选择排序。

简单选择排序

算法思想:

1.一趟简单选择排序的操作为:通过n-i 次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,和第i(1<= i <=n)个记录交换之;

1 PROC smp_selecpass(VAR r:listtype;i:interger)
2 {本算法在r[1..n]的记录中选择关键字最小的记录,并和r[i]相交换}
3   k:=i;
4   FOR j:=i+1 TO n DO
5       IF r[j].key < r[k].key THEN k:=j;{k指关键字最小的元素}
6   IF  k!= i THEN r[i]<->r[k] ;
7 END ; {smp_selecpass}

2.令i从1至n-1,调用n-1次算法smp_selecpass即可。

时间复杂度:

无论记录的初始排列如何,所需进行的关键字的比较次数相同,同为n(n-1)/2。因此,总的时间复杂度也是O(n2).

posted @ 2015-10-20 19:12  cp_cnblogs  阅读(145)  评论(0编辑  收藏  举报