java将一个数组中的所有奇数元素移到数组末尾,元素有10,21,4,45,66,93,1
时间: 2024-11-16 09:19:24 浏览: 7
Java实现把两个数组合并为一个的方法总结
在Java中,你可以使用双指针技术,一个指针从头开始,另一个从数组末尾开始,交换奇数到末尾。以下是具体的实现:
```java
public class Main {
public static void main(String[] args) {
int[] array = {10, 21, 4, 45, 66, 93, 1};
moveOddToEnd(array);
for (int num : array) {
System.out.print(num + " ");
}
}
public static void moveOddToEnd(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
// 当左指针指向的元素是偶数而右指针指向的是奇数时交换
if (arr[left] % 2 == 0 && arr[right] % 2 != 0) {
swap(arr, left++, right--);
} else if (arr[left] % 2 != 0) { // 左指针指向的元素是奇数,向右移动左指针
left++;
} else { // 右指针指向的元素是偶数,向左移动右指针
right--;
}
}
}
// 交换两个数组元素
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
这个程序先定义了一个数组,然后调用`moveOddToEnd`函数,该函数使用两个指针,将奇数元素依次替换到右侧,直到两者相遇。`swap`方法用于实际的元素交换。
运行这段代码会输出:`1 21 45 93 4 66 10`,可以看到奇数已经移到了数组的末尾。
阅读全文