选择排序算法就是通过n-1次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换。
算法步骤
①设待排序的记录存放在数组k[1…n]中。第一趟从k[1]开始,通过n-1次比较,从n个记录中选出最小的记录,记为k[r],交换k[1]和k[r]
②第二趟从r[2]开始,通过n-2次比较,从n-1个记录中选出关键字最小的记录,记为k[r],交换k[2]和k[r]
③依次类推,第i趟从r[i]开始,通过n-i次比较,从n-i+1个记录中选出关键字最小的记录,记为k[r],交换k[i]和k[r]。
④经过n-1趟完成
#include<stdio.h>
void SelectSort(int k[],int n)
{
int i,j,min,temp;
for(i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n;j++)
{
if(k[j]<k[min])
{
min=j;
}
}
if(min!=i)
{
temp=k[min];
k[min]=k[i];
k[i]=temp;
}
}
}
int main()
{
int i,a[10]={4,3,54,2,3,575,5454,13,44,1};
SelectSort(a,10);
printf("排序后:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}