考虑两种方法

1.使用数组,时间复杂度On 空间复杂度On 这个应该都会
2.主要看这个空间复杂度O1
可以变相理解是冒泡排序的一种,如果arr[i]是偶数且arr[i+1]是奇数,则进行交换,否则不进行交换。

代码1,2为了加快程序设置的flag,如果一次扫描没有交换位置,则表示条件成立,break程序。

public class Solution {
public void reOrderArray(int [] array) {

    for(int j=0; j<array.length-1; j++){
        boolean flag = false;//1
        for(int i=0; i<array.length-1-j; i++){

            if(!isJishu(array[i])&&isJishu(array[i+1])){
                int tmp = array[i+1];
                array[i+1] = array[i];
                array[i] = tmp;
                flag = true;
            }
        }
        if(flag == false){
            break;//2
        }
    }
}

public boolean isJishu(int target){
    if(target%2==0){
        return false;
    }else{
        return true;
    }
}

}