一尘不染

将数组中的奇数和偶数分开

java

给定一个整数数组,您需要将数组中的奇数和偶数分开。
请注意:元素的顺序可以更改。
例如:

arr[] = {12, 17, 70, 15, 22, 65, 21, 90}
Array after separating odd and even numbers :
{12, 90, 70, 22, 15, 65, 21, 17}

阅读 261

收藏
2021-06-15

共1个答案

一尘不染

让我们说数组是 arr[]

初始化两个索引变量,left=0right=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
2021-06-15