调整数组顺序使奇数位于偶数前面
题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路
使用两个指针,从一前一后进行判断,前偶后奇,则交换位置,否则不变。
代码
public void reOrderOddEven(int[] array){
int length = array.length;
int start = 0;
int end = length-1;
while(end>start){
while(start<end&& (array[start]%2==1)){
start++;
}
while(start<end&& (array[end]%2==0)){
end++;
}
if(end>start){
int temp=array[start];
array[start]=array[end];
array[end] = temp;
}
}
}