1.下标法,注意一下当发现偶数的时候,不能将它直接与最近的奇数交换,这样奇数的相对顺序虽然没有改变,但是偶数的相对数据变化了,所以移位吧。

public class Solution {
    int[] tempArray;
    public void reOrderArray(int [] array) {
        int length=array.length;
        tempArray=new int[length];
        if(length==0||length==1){

        }
       else{
           int o;
           for(int i=0;i<length;){
               if(array[i]%2==1){
                   i++;
               }else{
                   o=i;
                   i++;
                   while(i<length&&array[i]%2==0){
                       i++;
                   }
                   if(i==length){
                       return;
                   }
                   int temp=array[i];
                   for(int j=i;j>o;j--){
                       array[j]=array[j-1];
                   }
                   array[o]=temp;
                   i=o+1;
               }
           }
       }
    }

}

2.辅助数组法

public class Solution {
    int[] tempArray;
    public void reOrderArray(int [] array) {
        int length=array.length;
        tempArray=new int[length];
        if(length==0||length==1){

        }
       else{
           for(int i=0;i<length;i++){
               tempArray[i]=array[i];
           }
           int k=0;
           for(int i=0;i<length;i++){
               if(tempArray[i]%2==1){
                   array[k++]=tempArray[i];
               }
           }
           for(int i=0;i<length;i++){
               if(tempArray[i]%2==0){
                   array[k++]=tempArray[i];
               }
           }
       }
    }

}