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

mac2024-05-22  35

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

 

public class ArrayTest { public static int[] resetArr(int[] array){ int length = array.length; int[] oddArr = new int[length]; int oddSize = 0; for(int i=0, j= 0; i<length; i++){ if(array[i] % 2 != 0){ oddSize++; oddArr[j++] = array[i]; } } for(int m=0; m<length; m++){ if(array[m] % 2 ==0){ oddArr[oddSize++] = array[m]; } } return oddArr; } public static int[] resetArr1(int[] array){ int length = array.length; int[] evenArr = new int[length]; int oddSize = 0; for(int i=0, j= 0, k=0; i<length; i++){ if(array[i] % 2 == 0){ evenArr[j++] = array[i]; }else{ oddSize++; array[k++] = array[i]; } } int number = length - oddSize; for(int m=0; m<number; m++){ array[oddSize++] = evenArr[m]; } return array; } public static void main(String[] args) { int[] arr = new int[]{1,2,3,4,5,6,7}; // {1,1,2,1,3,4,6,8,9,10} int[] result = resetArr(arr); System.out.println("OK"); } }

 

最新回复(0)