题目:将数组中所有的奇数放到偶数前面,并且不改变奇数和偶数的相对位置
例如 1234567变为1357246
思路:这里如果考虑遍历一遍数组,将会使时间复杂度为O(n)。
于是采用双指针的方法(常用)。首尾分别一个指针。
从前往后看,每遇到奇数,就将首指针向后移。(因为题目奇数就应该在前面)
从后往前看,遇到偶数,就将指针往前移。(题目要求偶数在后面)
否则,交换两个指针处的值。注意这里循环条件是两个指针没有相遇。
public static void betterSortNum(int[] numbers) { int length = numbers.length; int i = 0; int j = length-