程序填空题:选择排序
本题要求进行选择排序。所谓选择排序,是第一轮中找到最小值的下标k,将a[k]与数组中的第一个数a[0]进行交换。交换完毕后,第一个数就排好了。接下来,从剩下的数中再找到最小值,将其与a[1]交换。可以发现,每一轮都会排好一个数,越到后面,参与排序的数越少。N个数排序,需要N-1轮,每轮排好一个数。
```
#include
#define N 10
int main()
{ int a[N],i,j,k,t;
for(i=0;i @@[scanf("%d",&a[i]);](1) //依次读取数据
for(i=0;i {
@@[k=i;](1)
for(j=@@[i+1](1); j if(@@[a[j] k=j;
if(i!=k)
{@@[t=a[i],a[i]=a[k],a[k]=t;](1)}
}
for(i=0;i if(i==0)
printf("%d",a[i]]);
else
printf(" %d",a[i]);
return 0;
}
```
答案:
第1空:scanf("%d",&a[i]);
第2空:k=i;
第3空:i+1
第4空:a[j]
第5空:t=a[i],a[i]=a[k],a[k]=t;
```
#include
#define N 10
int main()
{ int a[N],i,j,k,t;
for(i=0;i
for(i=0;i
@@[k=i;](1)
for(j=@@[i+1](1); j
if(i!=k)
{@@[t=a[i],a[i]=a[k],a[k]=t;](1)}
}
for(i=0;i
printf("%d",a[i]]);
else
printf(" %d",a[i]);
return 0;
}
```
答案:
第1空:scanf("%d",&a[i]);
第2空:k=i;
第3空:i+1
第4空:a[j]
第5空:t=a[i],a[i]=a[k],a[k]=t;