输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
对于这个题,我一开始的做法是重新开辟一个新的数组,然后遍历原来的数组,碰到奇数先存到新数组,奇数存完之后,再遍历原理数组,碰到偶数,再存进去,当然,这个解法可以AC,但是实际复杂度,空间复杂度比较高。
第二个做法是,利用冒泡排序的思想,讲奇数和偶数换位置,也是可以AC的。
public class Solution {
public void reOrderArray(int [] array) {
for(int i=0;i<array.length-1;i++) {
for (int j = 0; j < array.length-1-i; j++) {
if(array[j]%2==0&&array[j+1]%2==1) {
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
}