算法思想:设置头尾指针,如果头指针指向的数不是偶数,则头指针后移,尾指针指向的数不是奇数,尾指针前移,然后交换位置。重复此过程知道头指针的位置大于等于尾指针
1 9 3 7 5 6 4 8 2
public class reorderoddeven {
public static void main(String args[]){
int[] a={1,2,3,4,5,6,7,8,9};
reorder(a);
for(int each:a){
System.out.print(each+" ");
}
}
public static void reorder(int[] a){
int head=0;
int tail=a.length-1;
while(head<tail){
while(fun(a[head]))head++;
while(!fun(a[tail]))tail--;
if(head<tail){
int tmp=a[head];
a[head]=a[tail];
a[tail]=tmp;
}
}
}
//这个函数主要用于扩展,类似3的倍数,正负数的条件都可以通过函数来定义。
public static boolean fun(int n){
boolean flag=false;
if(n%2==1)flag=true;
return flag;
}
}
1 9 3 7 5 6 4 8 2