题目描述:
调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,
所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路:
1、重新开辟一个数组,先将奇数存入,然后将剩余的偶数填入
2、插入排序,保证相对位置不变
1 public class Tiaozhengshunxu { 2 public static void reOrderArray(int [] array) { 3 // int len = array.length; 4 // int[] array1 = new int[len]; 5 // int[] array2 = new int[len]; 6 // int j = 0,k=0; 7 // for(int i = 0;i<len;i++){ 8 // if(array[i]%2==0){ 9 // array2[j]=array[i]; 10 // j++; 11 // }else { 12 // array1[k]=array[i]; 13 // k++; 14 // } 15 // } 16 // System.arraycopy(array1, 0, array, 0, k); 17 // System.arraycopy(array2, 0, array, k, j); 18 //// for(int i = 0 ;i<array.length;i++){ 19 //// System.out.println(array[i]); 20 //// } 21 int len = array.length; 22 int[] res = array.clone(); 23 int j = 0; 24 for(int i = 0; i < len;i++){ 25 if(array[i]%2==1){ 26 res[j]=array[i]; 27 //System.out.println(res[j]); 28 j++; 29 } 30 } 31 for(int i = 0; i < len;i++){ 32 if(array[i]%2==0){ 33 res[j]=array[i]; 34 //System.out.println(res[j]); 35 j++; 36 37 } 38 } 39 40 array = res; 41 for(int i = 0 ;i<array.length;i++){ 42 System.out.println(array[i]); 43 } 44 } 45 public static void main(String[] args) { 46 // TODO Auto-generated method stub 47 int[] array = {1,2,3,4,5,6,7}; 48 reOrderArray(array); 49 } 50 51 }