分析:
找到整数数组中的奇数,便将其移动到数组前面。而整数数组中的偶数则直接平移回去。
举例: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;
}
}
}
}

京公网安备 11010502036488号