【问题描述】
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
时间限制: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 }