【问题描述】
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
时间限制:1秒 空间限制:32768K
【AC 代码】
采用稳定的插入排序算法
1 public class Solution {
2 public void reOrderArray(int [] array) {
3 int arrlen = array.length;
4 int k = 0; //记录排完序的奇数个数
5 for (int i = 0; i < arrlen; i++) {
6 if (array[i] % 2 == 1) {
7 int j = i;
8 while (j > k) {
9 int tmp = array[j];
10 array[j] = array[j-1];
11 array[j-1] = tmp;
12 j--;
13 }
14 k++;
15 }
16 }
17 }
18 }
知识兔View Code