/*输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分, 所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。*/ public class ReorderArrayOddBeforeEven { public static void main(String args[]){ int intArr[]={3,6,8,12,9,1,5,6,10}; Solution34 solution34 = new Solution34(); solution34.reOrderArray(intArr); for(int i=0; i<intArr.length; i++){ System.out.print(intArr[i] +" "); } System.out.println(); } } class Solution34 { public void reOrderArray(int[] array) { if(array== null || array.length==0){ return; } int i=0,j=0; while(j<array.length) { while (i<array.length && array[i] % 2 == 1) { i++; } if(j==0) { j = i; } while (j<array.length && array[j] % 2 == 0 ) { j++; } if(j<array.length && j>0) { //所有的偶数后移,奇数移动到原来第一个偶数所在的位置 int temp = array[j]; for (int k = j - 1; k >= i; k--) { array[k + 1] = array[k]; } array[i++] = temp; j++; } } } }