码迷,mamicode.com
首页 > 编程语言 > 详细

简单选择排序

时间:2015-10-20 21:13:44      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

选择排序

选择排序(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).

简单选择排序

标签:

原文地址:http://www.cnblogs.com/xjtuchenpeng/p/4895833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!