所谓选择排序就是先将10个数中最小的与a[0]对换,再将a[1]-a[9]中最小的数与a[1]对换......每一轮比较,找出一个未排序中的最小的一个,共比较9轮。
以5个数为例:
3 6 1 9 4 未排序状态
1 6 3 9 4
1 3 6 9 4
1 3 4 9 6
1 3 4 6 9 经过四次排序。
实现代码:
#include<stdio.h>
int main()
{
void sort(int a[],int n);
int i;
int a[10]={2,9,5,4,41,56,25,889,999,31};
sort(a,10);
printf("The sorted array:\n");
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void sort(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n;i++)
{ k = i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[k])
{
k = j;
}
}
t = a[k];
a[k] = a[i];
a[i] = t;
}
}