劍指Offer專題-陣列-面試題14:調整陣列順序使得奇數位於偶數前面
阿新 • • 發佈:2019-01-27
題目描述
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
public class Solution { public void reOrderArray(int [] array) { // if(array == null || array.length<2){ return ; } int oddBegin = 0; int oddCount = 0; int newArray[] = new int[array.length]; for(int i = 0; i<array.length; i++){ if(array[i]%2!=0){ oddCount++; } } for(int i=0; i<array.length; i++){ if(array[i]%2!=0) newArray[oddBegin++] = array[i]; else newArray[oddCount++] = array[i]; } for(int i=0;i<array.length;i++){ array[i] = newArray[i]; } /* int start = 0; int end = array.length - 1; // while(start<end){ //從前向後找偶數 while(start<end && array[start]%2!=0){ start++; } //從後向前找奇數 while(start<end && array[end]%2==0){ end--; } int temp = array[start]; array[start] = array[end]; array[end] = temp; } */ } }