题目描述:
输入一个整数数组 实现一个函数来调整该函数数组中数字的顺序,使得所有的奇数位于数组的前半部分 所有的偶数位于数组的后半部分
思路:
想到类似快排的实现,从前往后扫描偶数,从后往前扫描奇数,交换二者顺序即可。
public static void order(int[] number) {
int startIndex = 0;
int endIndex = number.length - 1;
while (startIndex < endIndex) {
if (startIndex < endIndex && !isEven(number[startIndex])) {//从前往后查找偶数
startIndex++;
}
if (startIndex < endIndex && isEven(number[endIndex])) {//从后往前查找奇数
endIndex--;
}
if (startIndex < endIndex) {
int temp = number[startIndex];
number[startIndex] = number[endIndex];
number[endIndex] = temp;
}
}
}
private static boolean isEven(int number) {
return number % 2 == 0;
}