给定left零号下标,right数组长度减一;
判断在left < right 情况下array[left]是否是奇数,如果是,该位置不动,left++;判断left < right 情况下array[right]是否是偶数,如果
是,也不动。
如果left位置是偶数,right位置是奇数,则进行交换。
import java.util.Arrays;
//数组内的数字排列
public class TestDemo2 {
public static void swap(int[] array) {
int left = 0;
int right = array.length-1;
while (left < right) {
while (left < right && array[left] % 2 != 0) {
left++;
}
while (left < right && array[right] % 2 == 0) {
right--;
}
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
}
}
public static void main(String[] args) {
int[] array = {1,2,3,9,8,7};
swap(array);
System.out.println(Arrays.toString(array));
}
}