交叉排序
Time Limit: 1000MS Memory limit: 32768K
题目描述
输入N个数,把所有奇数位置上的数从小到大排序,把偶数位置上的数从大到小排序。
输入
输入的第一行是一个正整数N(2<=N<=100)。
第二行是N个用空格隔开的整数。
第二行是N个用空格隔开的整数。
输出
输出只有一行N个数,是按要求排序后的序列,用空格隔开。
示例输入
6 1 2 3 4 5 6
示例输出
1 6 3 4 5 2
提示
来源
#include <iostream>
using namespace std;
int main()
{
int a[100];
int i, j, n, t;
cin >> n;
for(i=1; i<=n; i++)
cin >> a[i];
for(i=1; i<=n; i++)
for(j=i+2; j<=n; j+= 2)
if(i%2 == 1 && a[i] > a[j] || i%2 == 0 && a[i] < a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
cout << a[1];
for(i=2; i<=n; i++)
cout << " " << a[i];
cout << endl;
return 0;
}