活动地址:CSDN21天学习挑战赛
目录
一、选择排序的介绍
二、简单选择排序
三、算法流程
四、实例
五、算法分析
一、选择排序的介绍
选择排序的原理:选择排序的主要操作是选择,主要思想:每趟排序在待排序序列中选择最小的元素记录,添加到有序序列中 。
选择排序主要有简单选择排序(直接选择排序)和堆排序,堆排序算法可以看作是简单选择排序算法的改进;这里主要介绍简单选择排序算法。
二、简单选择排序
1、简单选择排序的基本思想:
第i趟在n-i+1(i=1,2,3.......n-1)个记录中选择最小的记录作为有序序列的第i个记录。
2、简单选择排序需解决的关键问题
如何让在待排序列中选择最小的记录
解决方法:设置一个整型变量min,min用于记录在一趟比较的过程中最小记录的位置
三、算法流程:
1)以第一趟遍历为例
在之后的遍历过程中,发现0比3小,所以min存放元素3所在的位置下标
遍历完一趟的结果为:
2) 算法描述:
min=i;
for(j=i+1;j<n;j++)
{
if(r[j]<r[min])
min=j;
}
if(min!=i)
交换r[i]和r[min]的位置;
四、实例
输入:待排序序列 :2 4 0 8 6
输出:从小到大的排序序列 :0 2 4 6 8
代码如下:
运行结果:
五、算法分析
移动次数:最好情况(正序)0次 例如:0 2 4 6 8
最差情况(逆序)3*(n-1)次 例如:8 6 4 2 0
比较次数:n*(n-1)/2
时间复杂度:O(n^2)