将整数数组按奇偶进行分组
给定一个存放整数的数组,重新排列数组元素使得数组左边为奇数,右边为偶数。
处理后同类元素的排列顺序可能变化的方案:
public void testOne(int[] ints) {
if (ints.length > 0) {
int start = 0;
int end = ints.length - 1;
while (true) {
if (start >= ints.length || end <= 0 || start >= end) {
break;
}
if (ints[start] % 2 == 1) {
start++;
continue;
}
if (ints[end] % 2 == 0) {
end--;
continue;
}
int temp = ints[start];
ints[start] = ints[end];
ints[end] = temp;
start++;
end--;
}
}
}
处理后同类元素的排列顺序不变的方案:
public void testTwo(int[] ints) {
int len = ints.length;
if (len > 0) {
for (int i = len - 2; i >= 0; i--) {
if (ints[i] % 2 == 0) {
for (int j = i + 1; j < len; j++) {
if (ints[j] % 2 == 0) {
break;
} else {
int temp = ints[j - 1];
ints[j - 1] = ints[j];
ints[j] = temp;
}
}
}
}
}
}