调整数组顺序使奇数位于偶数前
调整数组顺序使奇数位于偶数前面
http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
Java实现:
编程思路:题目要求将偶数位于数组的后半部分,对于这一要求,我们可以通过遍历将数组中的偶数一个个的丢到数组的末尾,将这个偶数之后的数一个个前移,这时候要注意2个问题:
1、需要将for循环中的循环次数限制条件进行实时的改变,每当出现一个偶数,就减少一次循环次数,这样就防止了在数组后半部分再一次的遍历之前被丢到后面的偶数,从而发生偶数之间相对位置的改变(代码中用len - -实 现)。
2、需要在一个偶数被丢到数组末尾之后再次判断这个索引的数值是否为偶数,防止漏判(代码中用添加 i - - 实现)。
public class Solution {
public void reOrderArray(int[] array) {
int temp=0;
int count=0;
int len=array.length;
for(int i=0;i<len;i++){
if(array[i]%2==0){
temp=array[i];
for(int j=i;j<array.length-1;j++){
array[j]=array[j+1];
}
array[array.length-1]=temp;
len--;
i--;
}
}
}
} 