【劍指offer】調整陣列數字位置
阿新 • • 發佈:2018-11-27
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
*思路:遍歷陣列,找到第一個偶數的位置 i ,然後以此位置為起點,找到後續第一個奇數的位置 j,然後儲存下 array[j], 並將索引為[i, j-1]的元素全部後移一位,最後將array[i]置為之前儲存的array[j]
1 public class Solution { 2 public void reOrderArray(int [] array) { 3 for(inti=0; i<array.length; i++){ 4 if(array[i]%2 ==0){ 5 for(int j=i; j< array.length; j++){ 6 if(array[j]%2!=0){ 7 int temp = array[j]; 8 //將陣列下標為i到j-1的元素後移一位 9 for(int k=j;k>i;k--){ 10 array[k] = array[k-1]; 11 } 12 //將發現的奇數放到正確的位置 13 array[i] = temp; 14 break; 15 } 16 } 17 }18 } 19 20 } 21 }