题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
题目链接:
package com.sunshine.OFFER66_SECOND; import org.junit.Test; public class A13_reOrderArray { @Test public void test() { int[] arr = {2, 3, 4, 1, 5}; reOrderArray(arr); for (int i : arr) { System.out.println(i); } } //空间换时间 public void reOrderArray(int[] array) { int[] ans = new int[array.length]; int pos = 0; for (int i = 0; i < array.length; i++) { if (array[i] % 2 == 1) { ans[pos++] = array[i]; } } for (int i = 0; i < array.length; i++) { if (array[i] % 2 == 0) { ans[pos++] = array[i]; } } for (int i = 0; i < array.length; i++) { array[i] = ans[i]; } return; } //插入排序思想 }