题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
public class Solution {
public void reOrderArray(int [] array) {
//
if(array == null || array.length<2){
return ;
}
int oddBegin = 0;
int oddCount = 0;
int newArray[] = new int[array.length];
for(int i = 0; i<array.length; i++){
if(array[i]%2!=0){
oddCount++;
}
}
for(int i=0; i<array.length; i++){
if(array[i]%2!=0)
newArray[oddBegin++] = array[i];
else
newArray[oddCount++] = array[i];
}
for(int i=0;i<array.length;i++){
array[i] = newArray[i];
}
/*
int start = 0;
int end = array.length - 1;
//
while(start<end){
//从前向后找偶数
while(start<end && array[start]%2!=0){
start++;
}
//从后向前找奇数
while(start<end && array[end]%2==0){
end--;
}
int temp = array[start];
array[start] = array[end];
array[end] = temp;
}
*/
}
}