思路:
选择排序法的思路是:每一趟在n-i个数字里选取最小的值赋给a[i],然后,下一趟把剩下的再继续比较,赋值,以此类推,不断交换赋值。
初始序列:
{ 49 27 65 97 76 12 38
}
第1趟:12与49交换:12
{ 27 65 97 76 49 38
}
第2趟:27不动 :12 27
{ 65 97 76 49 38
}
第3趟:65与38交换:12 27 38
{ 97 76 65 49
}
第4趟:97与49交换:12 27 38 49
{ 97 76 65
}
第5趟:76与65交换:12 27 38 49 65
{ 97 76
}
第6趟:97与76交换:12 27 38 49 65 76 97 完成
例题:用选择法进行排序
#include<stdio.h>
int main()
{
int a[5],i,j,k,l;
int t;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(j=0;j<5;j++)
{
for(k=j;k<5;k++)
{
if(a[j]>a[k])
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
}
for(l=0;l<5;l++)
printf("%d\n",a[l]);
return 0;
}
运行结果: