考虑两种方法
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; } }
}