调整数组顺序使奇数位于偶数前面

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
 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 }
原文地址:https://www.cnblogs.com/strive-19970713/p/11071826.html