輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得全部的奇數位於數組的前半部分,全部的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 java
輸入: 每一個輸入文件包含一組測試案例。
對於每一個測試案例,第一行輸入一個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); } } }