1、选择法原理
所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。
2、分析过程
a[0] a[1] a[2] a[3] a[4]
3 6 1 9 4 未排序时的情况
1 6 3 9 4 将5个数中最小的数1与a[0]对换
1 3 6 9 4 将余下的4个数中最小的数3与a[1]对换
1 3 4 9 6 将余下的3个数中最小的数4与a[2]对换
1 3 4 6 9 将余下的2个数中最小的数6与a[3]对换,至此完成排序
3、代码实现
#include <stdio.h>
void main()
{
void sort(int array[], int n);
int a[10],i;
printf("enter the array:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
printf("the sorted array:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
void sort(int array[], int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
4、运行结果