/*
*简单选择排序,在当前无序区选出关键字最小的元素,将他与无序区的第一个元素交换
*每趟都使有序区增加一个元素,直到所有的元素都排完为止。
*/
#include<stdio.h>
void SelectSort(int *a,int len);
int main(void)
{
int a[10]={122,53,15,6589,2767,544516,576,9,63,33};
SelectSort(a,10);
for(int k=0;k<10;k++)
{
printf("%d\n",a[k]);
}
return 0;
}
void SelectSort(int *a,int len)
{ int minIndex;
int temp;
//若为有序至少遍历len-1次
for(int i=0;i<len-1;i++)
{//用minIndex记录无序区的最小元素的下标
minIndex=i;
//从这个无序区的第二个元素开始寻找最小的元素下标
for(int j=i+1;j<len;j++)
{
//遍历这个无序区,找出最小元素的下标
if(a[minIndex]>a[j])
{
minIndex=j;
}
}
//将最小元素与无序区第一个元素交换位置
if(minIndex!=i)
{
temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
}
}
(排序)用C语言实现的简单选择排序(选择排序,其实个人认为也是交换排序)
最新推荐文章于 2022-06-28 12:30:36 发布