百度笔试:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
要求:空间复杂度O(1),时间复杂度为O(n)。
public static void Resort(int[] a){
int i = 0;
int j = a.length - 1;
while(i < j){
while(i < j && a[i] % 2 == 1){
i++;
}
while(j > i && a[j] % 2 == 0){
j--;
}
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}