1. 程式人生 > >劍指offer面試題21牛客

劍指offer面試題21牛客

題目描述:輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。(較書多了對順序的要求)

採用冒泡法:思想是把滿足要求的數一直像一端挪,自邊向內一次次的滿足要求

public class Solution {
    public void reOrderArray(int [] array) {
       for(int i= array.length-1;i>=0;i--){
            for(int j=0;j<i;j++){
                if(array[j]%2==0&&array[j+1]%2==1){
                    int t = array[j];
                    array[j]=array[j+1];
                    array[j+1]=t;
                }
            }
        }
    }
}

public void reOrderArray(int [] array) {
        int arraylength=array.length;
        for(int i=1;i<arraylength;i++){
           int temp=array[i];
           int j=i-1;
           if(array[i]%2!=0){
              while(j>=0){
                  if(array[j]%2!=0){
                      break;
                  }
                 if(array[j]%2==0){
                     int t=array[j+1];
                     array[j+1]=array[j];
                     array[j]=t;
                     j--;
                 }
              } 
           }
            //array[j+1]=temp;
        }
    }