输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
输入:每个输入文件包含一组测试案例。
对于每个测试案例,第一行输入一个n,代表该数组中数字的个数。 接下来的一行输入n个整数。代表数组中的n个数。 输出:对应每个测试案例,
输入一行n个数字,代表调整后的数组。注意,数字和数字之间用一个空格隔开,最后一个数字后面没有空格。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;/** * 调整数组顺序使奇数位于偶数前面 * @author aqia358 * */public class Main { public static void merge(int[] a1, int p1, int a2[], int p2){ int m = 0; int n = 0; while(m < p1){ System.out.print(a1[m++]+" "); } while(n < p2 - 1){ System.out.print(a2[n++]+" "); } System.out.print(a2[n]); } public static void main(String[] args) throws IOException { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); while(st.nextToken() != st.TT_EOF){ int n = (int) st.nval; int[] a1 = new int[n]; int[] a2 = new int[n]; int p1 = 0; int p2 = 0; int count = 0; while(count < n){ st.nextToken(); int t = (int) st.nval; if(t%2 != 0){ a1[p1++] = t; }else{ a2[p2++] = t; } count++; } merge(a1,p1,a2,p2); } }}