给定两个整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面.然后交换数组的内容java
时间: 2024-10-12 15:18:22 浏览: 21
数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析
在Java中,你可以通过双指针法和临时变量交换的方式来实现这个需求。以下是一个简单的示例代码:
```java
public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6}; // 假设这是输入的整型数组
separateAndSwap(array);
for (int num : array) {
System.out.print(num + " ");
}
}
public static void separateAndSwap(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--;
}
// 如果找到偶数和奇数,交换它们的位置
if (left < right) {
swap(array, left, right);
left++; // 移动左指针
right--; // 移动右指针
}
}
}
// 用于交换数组中两个元素的辅助函数
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
```
在这个代码中,我们首先初始化左右指针,分别从数组两端开始搜索。遇到偶数就移动左指针,遇到奇数就移动右指针。当左右指针相遇时,整个数组就被分成了两部分:偶数在前,奇数在后。然后使用`swap`函数交换这两个部分。
阅读全文