面试题14:调整数组顺序使基数位于偶数前
//面试题14:调整数组顺序,使奇数位于偶数前
//题目:输入一个整数数组,实现 一个函数来调整该数组中数字的顺序, //使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
package com.hb.jzoffer; import offer.utilities.ArrayUtils; //面试题14:调整数组顺序,使奇数位于偶数前 //题目:输入一个整数数组,实现 一个函数来调整该数组中数字的顺序, //使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。 public class ReorderArrayOddEven { public void ReorderOddEven(int[] data){ int length = data.length; if(data == null || length == 0){ return ; } int begin = 0 ; int end = length - 1 ; while(begin < end){ while((begin < end) && (data[begin] % 2) == 1){ begin++ ; } while((begin < end) && (data[end] % 2) == 0){ end-- ; } if(begin < end){ ArrayUtils.exchangeElements(data, begin, end); } } } public static void main(String[] args) { ReorderArrayOddEven array = new ReorderArrayOddEven(); int[] data = {1,2,3,4,5,6}; System.out.println("初始化数组:"); ArrayUtils.printArray(data); array.ReorderOddEven(data); System.out.println("奇数在偶数前的数组"); ArrayUtils.printArray(data); } }