#include <stdio.h>
/*
* 选择法:
*/
void Select(int A[ ],int n)
{
int i,j,k,temp;
for(i = 0;i < (n - 1); i++)
{
k = i;
for(j = (i + 1);j < n;j++)
if(A[j] < A[k]) k = j; //相当于如果A[j] > A[i],则将j赋给k
if(k!=i) //如果上面的判断语句成立,则k = j,此时k != i,则交换A[i],A[j]
{
temp = A[i];
A[i] = A[k];
A[k] = temp;
}
}
}
int main( )
{
int a[10],i;
printf("Please input 10 numbers\n");
for(i = 0;i < 10;i++)
scanf("%d",&a[i]);
printf("Before sorted numbers:\n");
for(i = 0;i < 10;i++)
printf("%5d",a[i]);
printf("\n");
Select(a,10);
printf("After sorted numbers:\n");
for(i = 0;i < 10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
输出结果: