题目
描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
示例2
输入:
[2,4,6,5,7]
返回值:
[5,7,2,4,6]
Code
import java.util.*;
public class Solution {
// 插入排序思想,把前面的奇数看成有序数组,遇到奇数就插入到前面有序队列中
public int[] reOrderArray (int[] array) {
if(array == null || array.length == 0) return array;
// 记录index之前的都为奇数
int index = 0;
for(int i=0; i<array.length; i++) {
int p = array[i];
if(p %2 != 0) {
int j=i;
while(j>index) {
array[j] = array[j-1];
j --;
}
array[j] = p;
index ++;
}
}
return array;
}
}