关键:定义首尾两个指针,同时向中间移动,首指针遇到第一个偶数和尾指针遇到的第一个奇数交换,重复上述步骤
public static void reorder(int a[],int length){
if(a==null||length<=0){
return;
}
int begin=0;
int last=length-1;
while(begin<last){
while(begin<last&&!testBool(a[begin])){//指针向后移动,直到找到偶数
begin++;
}
while(begin<last&&testBool(a[last])){//指针向前移动,直到找到奇数
last--;
}
//交换前面偶数和奇数位置
if(begin<last){
int temp=a[begin];
a[begin]=a[last];
a[last]=temp;
}
}
}
//判断奇偶数
public static boolean testBool(int n){
if((n&1)==0)
return true;
else
return false;
}