原题描述:用选择法对10个整数按从小到大顺序排序。
选择法排序的思想:
首先从1~n个元素中选择出数值最小的数,交换到第一个位置上。 然后从第2~n个元素中选择出数值次小的数交换到第二个位置上,以此类推,直至排完
#include<stdio.h>
int main()
{
int a[10],k,i,j,p,t;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
k = i;//作为每次比较的最左边的第一个数
for(j=i+1;j<10;j++)
{
if(a[j]<a[k])//如果J位的数小于k位上的数
{
k = j;//则改变最小值的索引
}
}
if(k!=i)//两个位置相等不交换,否则交换
{
t=a[k];
a[k] = a[i];
a[i] = t;
}
}
printf("排序后:\n");
for(i=0;i<10;i++){
printf("%d\t",a[i]);
}
return 0;
}