java,数组中的数字,甚至是第一个

时间:2017-04-28 04:18:17

标签: java

编写一个java程序来重新排列数组中的所有数字,甚至在奇数之前,只使用O(1)空间,并且应该保持偶数和奇数的相对顺序,例如: 输入:[1,2,3,4,5] 输出:[2,4,1,3,5]

2 个答案:

答案 0 :(得分:0)

建议:

通过数组查看相邻的数字对。每当你找到一对第一个数字是奇数而第二个数字是偶数时,交换它们。保持交换数量的计数。继续对阵列进行传递,直到你最终传出一个你不必交换任何数字的传球。

答案 1 :(得分:0)

试试这段代码:

 public static void main(String[] args)
  {
    int[] arr = {1, 2, 3, 4, 5};

    int temp=0;
    int a=0;
    for(int i=0;i<arr.length;i++){
        if(arr[i]%2==0){

            for (int j=i;j>a;j--){
                temp=arr[j-1];
                arr[j-1]=arr[j];
                arr[j]=temp;
            }
            a++;
        }
    }
   System.out.println(Arrays.toString(arr));

  }