劍指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;
}
}