题目1516:调整数组顺序使奇数位于偶数前面
书中的用前后指针的解法不适用在这题,因为会改变原来的顺序!
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class S14 {
public static void main(String[] args) throws FileNotFoundException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("in.in"));
System.setIn(in);
Scanner cin = new Scanner(System.in);
int[] buf = null;
int i = 0;
while (cin.hasNextInt()) {
int n = cin.nextInt();
buf = new int[n];
for(i=0; i<n; i++){
buf[i] = cin.nextInt();
}
}
process(buf);
}
public static void process(int[] buf){
int buflen = buf.length;
int[] odd = new int[buflen];
int[] even = new int[buflen];
int j=0, k=0;
for(int i=0; i<buflen; i++){
if((buf[i]&1) == 1){
odd[j++] = buf[i];
}else{
even[k++] = buf[i];
}
}
for(int i=0; i<j; i++){
System.out.print(odd[i] + " ");
}
for(int i=0; i<k; i++){
if(i != k-1){
System.out.print(even[i] + " ");
}else{
System.out.print(even[i]);
}
}
System.out.println();
}
}