代码
#include<iostream>
using namespace std;
int main()
{
int i,j,t,min,n;
int a[15];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
for(i=1;i<n;i++)
{
min=i;
for(j=i+1;j<=n;j++)
{
if(a[min]>a[j])//从小到大用“>”,反之用“<”.
{
min=j;
}
}
t=a[min];
a[min]=a[i];
a[i]=t;
}
for(i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
具体事例
题目描述
新学期关老师要给初二(1)班的N名同学按身高安排新的座位,关老师要求同学们分别从矮到高站成一列,请你利用选择排序帮关老师完成队列的调整。
10<=N<=50
输入
输入共两行,第一行整数N为一班人数,第二行N个整数为一班同学们的身高。
输出
从矮到高输出一班同学的身高,每个数据用两个空格隔开。
样例输入
10
180 165 150 158 161 170 175 188 174 170
样例输出
150 158 161 165 170 170 174 175 180 188
代码
#include<iostream>
using namespace std;
int main()
{
int i,j,t,min,n;
int a[15];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
for(i=1;i<n;i++)
{
min=i;
for(j=i+1;j<=n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
t=a[min];
a[min]=a[i];
a[i]=t;
}
for(i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}