思路:设定两个下标分别指向第一个元素和后一个元素.
用前一个下标从左往右找到第一个奇数, 用后一个下标从右往左找到第一个偶数, 然后交换两个位置的元素. 依次循环即可.
public class TestDemo {
public static void fun(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 == 0) {
left++;//从左往右移动
}
while (left < right && arr[right] % 2 != 0) {
right--;//从右往左移动
}
}
//奇数偶数进行交换
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
fun(arr);
System.out.println(Arrays.toString(arr));
//打印数组
}
}