让我们说数组是 arr[]
初始化两个索引变量,left=0
和 right=arr.length-1
增加左变量直到你得到奇数 递减右边的变量,直到你得到偶数。 如果 left < right
,交换 arr[left]
和 arr[right]
最后,您会看到左侧有偶数,右侧有奇数。 用于分隔数组中奇数和偶数的 Java 代码:
package org.arpit.java2blog;
public class SeparateOddEvenMain {
public static void main(String[] args) {
int arr[]={12, 17, 70, 15, 22, 65, 21, 90};
System.out.println("Original Array: ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
arr=separateEvenOddNumbers(arr);
System.out.println("nArray after separating even and odd numbers : ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static int[] separateEvenOddNumbers(int arr[])
{
int left=0;
int right=arr.length-1;
for (int i = 0; i < arr.length; i++) {
while(arr[left]%2==0)
{
left++;
}
while(arr[right]%2==1)
{
right--;
}
if(left<right)
{
int temp=arr[left];
arr[left]=arr[right];
arr[right]=temp;
}
}
return arr;
}
}
当你运行上面的程序时,你会得到以下输出:
Original Array:
12 17 70 15 22 65 21 90
Array after separating even and odd numbers :
12 90 70 22 15 65 21 17