选择排序包括简单选择排序和堆排序,其思想是一致的:从一段无序的记录序列中选出最大或者最小的记录与无序记录序列的首或者尾记录交换,直至最后两个无序记录作比较交换。简单选择排序和堆排序的区别在于:选出最大或者最小记录的方式不一样。
简单选择排序
实现注意点:遍历无序区,记录最大(最小)记录的位置(下标),一趟比较之后作交换操作
C代码如下:
void SelectSort(int a[],int len)
{
int i,j,pos;
int temp;
for(i=0;i<len-1;i++)
{
pos = i;
for(j=i+1;j<=len-1;j++)
{
if(a[j]>a[pos])
{
pos = j;
}
}
temp = a[i];
a[i] = a[pos];
a[pos] = temp;
}
}