输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
*思路:遍历数组,找到第一个偶数的位置 i ,然后以此位置为起点,找到后续第一个奇数的位置 j,然后保存下 array[j], 并将索引为[i, j-1]的元素全部后移一位,最后将array[i]置为之前保存的array[j]
1 public class Solution { 2 public void reOrderArray(int [] array) { 3 for(int i=0; i<array.length; i++){ 4 if(array[i]%2 ==0){ 5 for(int j=i; j< array.length; j++){ 6 if(array[j]%2!=0){ 7 int temp = array[j]; 8 //将数组下标为i到j-1的元素后移一位 9 for(int k=j;k>i;k--){ 10 array[k] = array[k-1]; 11 } 12 //将发现的奇数放到正确的位置 13 array[i] = temp; 14 break; 15 } 16 } 17 } 18 } 19 20 } 21 }