调整数组顺序使奇数在偶数前面(相对位置不变)

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

分析

新建一个数组,对原数组做两个for循环。第一次将奇数写入新数组,第二次将偶数写入新数组。最后将新数组拷贝到原数组。

代码:

public class Solution {
public void reOrderArray(int [] array) {
int len = array.length;
int j = 0;
int[] arr = new int[len];
for(int i = 0; i < len; i++){
if(array[i] % 2 == 1){
arr[j++] = array[i];
}
}
for(int i = 0; i < len; i++){
if(array[i] % 2 == 0){
arr[j++] = array[i];
}
}
System.arraycopy(arr,0,array,0,len);
}
}

欢迎关注公众号: FullStackPlan 获取更多干货

Copyright © 2016 - 2017 LBD All Rights Reserved.

访客数 : | 访问量 :