Q21調整陣列使奇數字於偶數之前

2021-10-04 20:21:17 字數 634 閱讀 8273

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

不斷將在奇數前的偶數交換位置。

一輪過後,最後乙個肯定是偶數。

降低for迴圈判斷的長度,直到0

class

solution}if

(!changeflag)

return;}

}};

1 2 4 6 3 7

​ ^ p1 ^p2

得到第乙個偶數

得到偶數後的第乙個奇數

將偶數和奇數前的數字都整體往後移1

class

solution

array[p1]

= tmp;

++p1;

}else

break;}

}};

前面的指標p1指向偶數

後面的指標p2指向奇數

當p1

//不能保證奇數和偶數的順序

class

solution}}

};

21 調整陣列順序使奇數字於偶數前面

輸入一整數陣列,調整陣列中數字的順序,使奇數字於陣列的前半部分,偶數字於陣列的後半部分 兩個指標a,b.a指向開始 b指向結束。向中間移動指標,當a指向偶數,b指向奇數時,交換位置。當 a b時,表示已經結束,得到移動後的陣列 public static void reorder int num i...

21 調整陣列順序使奇數字於偶數前面

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。牛客上的這道題比劍指offer多了乙個條件,就是要保證奇數和奇數,偶數和偶數之間的相對位置不變。最簡單的思路就是新建乙個空間,掃兩遍...

21 調整陣列順序使奇數字於偶數前面

nowcoder 需要保證奇數和奇數,偶數和偶數之間的相對位置不變,這和書本不太一樣。方法一 建立乙個新陣列,時間複雜度 o n 空間複雜度 o n public void reorderarray int nums private boolean iseven int x 方法二 使用冒泡思想,每...