题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1 public class Main13 { 2 3 /* 4 * 题目描述 5 * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, 6 * 使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分, 7 * 并保证奇数和奇数,偶数和偶数之间的相对位置不变。 8 */ 9 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12 int array[] = {2,9,4,1,3,5,7}; 13 Main13.reOrderArray(array); 14 for (int i=0;i<array.length;i++) { 15 System.out.print (array[i] + " "); 16 } 17 } 18 19 public static void reOrderArray(int []array) { 20 int j = 0; 21 int k = 0; 22 for (int i=0;i<array.length;i++) { 23 if(array[i] % 2 == 0) { 24 //偶数 25 j++; 26 }else { 27 //奇数 28 k++; 29 } 30 } 31 int[] a = new int[j];//偶数 32 int[] b = new int[array.length];//奇数 33 int jj = 0; 34 int kk = 0; 35 for (int i=0;i<array.length;i++) { 36 if(array[i] % 2 == 0) { 37 a[jj] = array[i]; //偶数 38 jj++; 39 }else { 40 b[kk] = array[i]; //奇数 41 kk++; 42 } 43 } 44 for (int m=0;m<j;m++) { 45 b[kk] = a[m]; 46 kk++; 47 } 48 for (int i=0;i<array.length;i++) { 49 array[i] = b[i]; 50 } 51 } 52 }