本文共 794 字,大约阅读时间需要 2 分钟。
题目描述:
输入一个整数数组 实现一个函数来调整该函数数组中数字的顺序,使得所有的奇数位于数组的前半部分 所有的偶数位于数组的后半部分
思路:
想到类似快排的实现,从前往后扫描偶数,从后往前扫描奇数,交换二者顺序即可。
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; }
转载地址:http://zhqli.baihongyu.com/