给定一个整数数组,您需要将数组中的奇数和偶数分开。 请注意:元素的顺序可以更改。 例如:
arr[] = {12, 17, 70, 15, 22, 65, 21, 90} Array after separating odd and even numbers : {12, 90, 70, 22, 15, 65, 21, 17}
让我们说数组是 arr[]
arr[]
初始化两个索引变量,left=0 和 right=arr.length-1 增加左变量直到你得到奇数 递减右边的变量,直到你得到偶数。 如果 left < right,交换 arr[left]和 arr[right] 最后,您会看到左侧有偶数,右侧有奇数。 用于分隔数组中奇数和偶数的 Java 代码:
left=0
right=arr.length-1
left < right
arr[left]
arr[right]
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