调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面
http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593
分析:
找到整数数组中的奇数,便将其移动到数组前面。而整数数组中的偶数则直接平移回去。
举例:2 4 1 3 6 8 9
用一个指针来指向数组,从首位开始。
指针指向第一位,其为偶数,i=0;
开始循环遍历,遇到1,就交换的一次次序为如下,完成第一次交换
1 2 4 3 6 8 9
指针指向第二位,其为偶数,i=1
开始循环遍历,遇到3,就交换的一次次序为如下,完成第二次交换
1 3 2 4 6 8 9
指针指向第三位,遇到9,就交换的一次次序如下,完成第三次交换
1 3 9 2 4 6 8
依次重复推进,直到i=length-1
public class Solution { public void reOrderArray(int [] array) { int i=0; while(i<=array.length-1){ if((array[i]&1)==1){ i++; } else if((array[i]&1)==0){ int temp=array[i]; int index=-1; for(int j=i+1;j<=array.length-1;j++){ if(array[j]%2!=0){ temp=array[j]; index=j; break; } } for(int k=index-1;k>=i;k--){ array[k+1]=array[k]; } array[i]=temp; i++; continue; } } } }