调整数组顺序使奇数位于偶数前面
题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
代码:
package com.hlq.test; /** * @author helongqiang * @date 2020/5/15 23:22 */ /** * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, * 使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后 * 半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 */ public class Solution { public void reOrderArray(int[] array){ int len = array.length; if(len <= 1){ return; } int i = 0; while (i <= len){ if(array[i] % 2 == 1) { i++; }else{ int j = i + 1; while (array[j] % 2 == 0){ if(j == len-1){ return; } j++; } int tmp = array[j]; while(j > i){ array[j] = array[j-1]; j--; } array[i] = tmp; } } } }