package arraydemo;
import java.util.Scanner;
public class ArrTest4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();//输入整数n
int[] arr = new int[n];//定义一个长度为n的数组
for (int i = 0; i < n; i++) {//遍历输入的n个整数
arr[i] = scan.nextInt();//输入n个整数
}
int oddidx = 0;//定义一个表示索引的变量,指向数组的第一个元素
int evendix = n - 1;//指向数组的最后一个元素
while (oddidx < evendix) {
if (arr[oddidx] % 2 != 0) {//如果为奇数,则索引加一
oddidx++;
} else if (arr[evendix] % 2 == 0) {
evendix--;
}else{
swap(arr,oddidx++,evendix--);
}
}
for (int i = 0; i < n; i++) {
System.out.println(arr[i]);
}
int i = 0;
if (i != n - 1) {
System.out.print(" ");
}
}
private static void swap(int[]arr,int a,int b){//引用数组对变量进行传递,即重新赋值
int tmp=arr[a];
arr[a]=arr[b];//定义一个中间变量来交换
arr[b]=tmp;
}
}
思路:奇数索引自增,偶数索引自减,如果反之,奇数索引自减,则会产生死循环,奇数索引一直减一,偶数索引一直加一