题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路
使用两个数组,一个存储数组中的奇数,一个存储数组的偶数,然后在合并两个数组
代码
public void reOrderArray(int [] array) {
ArrayList<Integer> str1 = new ArrayList<>();
ArrayList<Integer> str2 = new ArrayList<>();
for(int i=0;i<array.length;i++){
if(array[i]%2 ==0){
//偶数
str2.add(array[i]);
}else{
str1.add(array[i]);
}
}
for(int i =0;i<str1.size();i++){
array[i] = str1.get(i);
}
for(int i =0;i<str2.size();i++){
array[i+str1.size()] = str2.get(i);
}
}
注意ArrayList类型数组的遍历方法,即get()方法。