java数组中的偶数放奇数前
时间: 2024-05-13 21:16:30 浏览: 11
可以使用双指针法实现将数组中的偶数放在奇数前面。具体实现步骤如下:
1. 定义两个指针i和j,分别指向数组的开头和结尾。
2. 当i<j时,不断循环执行下列步骤:
a. 如果a[i]是奇数,i向右移动一位。
b. 如果a[j]是偶数,j向左移动一位。
c. 如果a[i]是偶数,a[j]是奇数,交换a[i]和a[j]的值,i向右移动一位,j向左移动一位。
3. 当i>=j时,双指针法结束。
以下是Java代码示例:
```
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void moveEvenToFront(int[] arr) {
int i = 0, j = arr.length - 1;
while (i < j) {
if (arr[i] % 2 != 0) {
i++;
} else if (arr[j] % 2 == 0) {
j--;
} else {
swap(arr, i, j);
i++;
j--;
}
}
}
```
相关问题
java数组判断奇数偶数
可以使用取模运算符(%)来判断一个数是奇数还是偶数,当一个数对2取余为0时,它是偶数,否则为奇数。以下是一个Java程序示例,可以判断一个数组中所有元素的奇偶性:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
System.out.println(arr[i] + "是偶数");
} else {
System.out.println(arr[i] + "是奇数");
}
}
}
}
```
输出结果如下:
```
1是奇数
2是偶数
3是奇数
4是偶数
5是奇数
6是偶数
7是奇数
8是偶数
9是奇数
```
定义一个长度为10数组偶数排在奇数前面java
可以使用双指针的方法,一个指针从数组的左侧开始,一个指针从数组的右侧开始,分别向中间移动,如果左侧指针指向的数为奇数,右侧指针指向的数为偶数,则交换它们的位置,直到两个指针相遇为止。
Java代码实现如下:
```java
public static void evenBeforeOdd(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
// 左指针指向的数为奇数
while (left < right && arr[left] % 2 == 1) {
left++;
}
// 右指针指向的数为偶数
while (left < right && arr[right] % 2 == 0) {
right--;
}
// 交换左右指针指向的数
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
}
```
调用方法:
```java
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
evenBeforeOdd(arr);
System.out.println(Arrays.toString(arr)); // [8, 2, 6, 4, 5, 3, 7, 1, 9, 10]
```