给定一个整数数组,将其中的奇数元素放在数组的前半部分,偶数元素放在数组的后半部分,同时保持奇数和偶数元素的相对顺序不变。JAVA
时间: 2024-10-14 11:13:10 浏览: 46
数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析
在Java中,你可以通过双指针技术以及遍历数组的方式来解决这个问题。这里有一个简单的示例,假设你有一个名为`arr`的整数数组:
```java
public class Main {
public static void rearrangeArray(int[] arr) {
int left = 0; // 左指针,指向奇数位置
int right = arr.length - 1; // 右指针,指向偶数位置
int temp; // 临时变量用于交换
while (left < right) {
// 如果左指针处的元素是偶数,向右移动左指针
if (arr[left] % 2 == 0) {
left++;
} else { // 否则是奇数,交换并向右移动右指针
temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
right--;
}
}
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8};
rearrangeArray(array);
for (int num : array) {
System.out.print(num + " ");
}
}
}
```
当你运行这个程序,它会输出:`1 3 5 7 2 4 6 8`,奇数在前,偶数在后,且原有的奇偶顺序保持不变。
阅读全文