当前位置: 首页 > 面试题库 >

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

暴博远
2023-03-14
问题内容

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

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[]

初始化两个索引变量,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


 类似资料:
  • 问题内容: 我在此站点上看到了此代码。它使用一种方法来对数组进行排序,其中偶数排在数组的前面,而奇数排在数组的后面。我想知道您是否可以做同样的事情,除了先显示奇数,然后再显示偶数?我试过了,但无济于事。我是Java编程的新手,我想测试递归。 } 输出是这样的: 问题答案: 好吧,如果你想单号是第一位的,取代任何与任何带:

  • 我有一个布尔方法的麻烦,我想检查数组是偶数,奇数,还是两者都不是。我输入数组大小和数组值,但是“isArrayEven”方法仍然输出“array中的所有数字都是偶数”,即使我的数组是1、2、3并且isArrayEven假定是false。 我

  • 如何添加代码以查找此程序数组中的零?此代码可以计算偶数和奇数。我应该做一个不同的语句,还是可以添加另一个如果其他语句?

  • 本文向大家介绍在JavaScript中将数组的和确定为偶数还是奇数,包括了在JavaScript中将数组的和确定为偶数还是奇数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个整数数组arr。如果数组的所有元素之和为奇数,则函数应返回字符串“ odd”,如果为偶数则返回“偶数”。 示例 以下是代码- 输出结果 以下是控制台输出-

  • 问题内容: 我有这个数组: 我想根据索引是偶数还是奇数将其分为两个数组,如下所示: 提前致谢! 问题答案: 一种解决方案,使用匿名函数和: 这样就可以将数组中的项一次分离出来,但是有点“聪明”。确实没有比经典的,更冗长的更好

  • 我们有一个偶数放置排序和奇数放置排序的数组,这意味着偶数索引的子数组被排序,奇数索引的子数组被排序。例如-{1,4,2,7,4,18,5,19,20}两个排序的子数组是{1,2,4,5,20}和{4,7,18,19}-一组有偶数索引,另一组有奇数索引。有没有一种方法可以用O(1)空间复杂度和O(n)时间对整个数组进行排序?