java中一个数组中把奇数放在数组的左边,偶数放在数组的右边怎么做
时间: 2024-04-14 21:27:19 浏览: 17
您可以使用双指针法来实现这个要求。具体步骤如下:
1. 定义两个指针,一个指向数组的起始位置,称为left,另一个指向数组的末尾位置,称为right。
2. 循环遍历数组,当left指针小于等于right指针时执行以下步骤:
- 如果arr[left]是奇数,则left指针向右移动一位。
- 如果arr[right]是偶数,则right指针向左移动一位。
- 如果arr[left]是偶数且arr[right]是奇数,则交换arr[left]和arr[right]的值,并将left指针向右移动一位,right指针向左移动一位。
3. 当left指针大于right指针时,数组中的奇数已经全部移动到了左边,偶数已经全部移动到了右边。
以下是使用Java代码实现上述逻辑的示例:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
rearrangeArray(arr);
for (int num : arr) {
System.out.print(num + " ");
}
}
public static void rearrangeArray(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
if (arr[left] % 2 == 1) {
left++;
} else if (arr[right] % 2 == 0) {
right--;
} else {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
}
}
```
上述代码输出结果为:1 5 3 4 2 6,奇数放在了数组的左边,偶数放在了数组的右边。