Problem B: 数列排序
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 400 Solved: 97
[ Submit][ Status][ Web Board]
Description
给定一个长度为n(1<=n<=200)的数列,将这个数列按如下规则排列。
最小数,最大数,次小数,次大数,......
Input
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
Output
输出一行,按从题目要求的顺序输出排序后的数列。
Sample Input
10 1 2 4 3 5 8 7 6 10 9
Sample Output
1 10 2 9 3 8 4 7 5 6
HINT#include <iostream>
using namespace std;
int main ()
{
int n,t; int i,j;
cin>>n;
int a[201];
for( i=1;i<=n;i++)
{
cin>>a[i];
}
for( i=1;i<n;i++) //对数列排序
{
for(j=i+1;j<=n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
if(n%2==0) //n为偶数时
{
for(i=1;i<n/2;i++)
{
cout<<a[i]<<' '<<a[n-i+1]<<" ";
}
cout<<a[i]<<' '<<a[n-i+1]<<endl;
}
else//n为奇数时
{ for(i=1;i<=n/2;i++)
{
cout<<a[i]<<' '<<a[n-i+1]<<" ";
}
cout<<a[n/2+1]<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main ()
{
int n,t; int i,j;
cin>>n;
int a[201];
for( i=1;i<=n;i++)
{
cin>>a[i];
}
for( i=1;i<n;i++) //对数列排序
{
for(j=i+1;j<=n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
if(n%2==0) //n为偶数时
{
for(i=1;i<n/2;i++)
{
cout<<a[i]<<' '<<a[n-i+1]<<" ";
}
cout<<a[i]<<' '<<a[n-i+1]<<endl;
}
else//n为奇数时
{ for(i=1;i<=n/2;i++)
{
cout<<a[i]<<' '<<a[n-i+1]<<" ";
}
cout<<a[n/2+1]<<endl;
}
return 0;
}