java数组中的偶数放奇数前
时间: 2024-05-13 11:16:30 浏览: 75
可以使用双指针法实现将数组中的偶数放在奇数前面。具体实现步骤如下:
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 奇偶数问题。设有一维整型数组共有10个元素,且偶数与奇数各占一半, 将该数组变换为2×5的二维数组且偶数和奇数各成一行。
在Java中,我们可以创建一个一维数组,并将其中的奇数和偶数分别放入两个独立的一维数组中。然后,将这两个数组合并到一个新的二维数组中,形成一个2x5的结构,其中第一行包含偶数,第二行包含奇数。这里是一个简单的步骤说明:
1. 初始化一个长度为10的一维整型数组,比如`int[] nums = new int[10]`。
2. 遍历这个数组,判断每个元素是否为偶数。如果是偶数,将其添加到一个名为`evenArray`的新数组中;如果为奇数,添加到`oddArray`中。你可以使用`if (nums[i] % 2 == 0)`来检查奇偶性。
3. 创建两个新的二维数组,`int[][] evenTwoD = new int[2][5]` 和 `int[][] oddTwoD = new int[2][5]`,用于存放偶数和奇数。
4. 根据数组大小,确定从`evenArray`和`oddArray`中取多少元素填充到二维数组中。因为两者各有5个元素,所以可以直接复制过去。
5. 将`evenArray`和`oddArray`的元素按照行依次填入`evenTwoD`和`oddTwoD`,例如:
- 第0、4、8位置给`evenArray`;
- 第1、5位置给`oddArray`;
- 第2、6位置再给`evenArray`;
- 最后两行则给剩余的`oddArray`。
6. 最后,将两个二维数组拼接在一起,形成2x5的矩阵。
以下是伪代码示例:
```java
// 初始化一维数组和二维数组
int[] nums = ...;
int[][] evenTwoD = new int[2][5];
int[][] oddTwoD = new int[2][5];
// 分离偶数和奇数
for (int i = 0; i < 10; i++) {
if (nums[i] % 2 == 0) {
evenArray[j++] = nums[i]; // j 用于跟踪哪一行满了
} else {
oddArray[k++] = nums[i]; // k 同理
}
}
// 将分开的数组填充到二维数组中
evenTwoD[0] = evenArray;
oddTwoD[0] = oddArray.slice(0, 5);
evenTwoD[1] = evenArray.slice(5, 10);
oddTwoD[1] = oddArray;
// 结果存储在evenTwoD和oddTwoD中
```
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是奇数
```
阅读全文