交叉排序
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
java的Arrays类居然只有升序排序。。sad
import java.io.*; import java.util.*; import java.math.*; import java.text.*; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); int n; int[] a=new int[200]; int[] b=new int[200]; n=in.nextInt(); int p=0,q=0; for(int i=1;i<=n;i++) if(i%2!=0){ a[p]=in.nextInt(); p++; } else{ b[q]=in.nextInt(); q++; } Arrays.sort(a,0,p);Arrays.sort(b,0,q); p=0;q--; for(int i=1;i<=n;i++) if(i%2!=0){ System.out.print(a[p]+" "); p++; } else{ System.out.print(b[q]+" "); q--; } } }