演算法題 奇數字放奇數偶數字放偶數

2021-10-07 01:33:28 字數 536 閱讀 5393

今天面試遇到這樣一道題,乙個長度為2n的整數陣列,裡邊有n個奇數n個偶數但是無序,要求奇數字放奇數偶數字放偶數 

結題思路:

採用雙指標分別記錄奇數字和偶數字,當偶數字的值錯誤的時候如果奇數錯誤的index不為空則交換數值,如果為空則將index記錄下來。奇數同理

public static void main(string args) );

}//方法一

public static int sortjo(int array)

while (jindex < array.length&& array[jindex] % 2 == 1)

if (oindex < array.length&&jindex輸出結果:

1 1 1 1 2 2 2 2 

1 1 1 1 2 2 2 2 

2 1 1 1 2 1 2 2 

2 1 1 1 2 1 2 2 

2 1 2 1 2 1 2 1 

2 1 2 1 2 1 2 1 

2 1 2 1 2 1 2 1 

轉換陣列使奇數字為奇數 偶數字為偶數

設定 odd even兩個標誌位為odd為1,even為0,然後從最後一位開始看,如果說最後一位為偶數,就和even位交換,even自增2,如果是奇數,則和odd位交換,odd自增2,一直到二者其中乙個越界位置。解法比較奇特。include include include using namespa...

奇數字上都是奇數或者偶數字上都是偶數

題目描述 給定乙個長度不小於2的陣列arr。寫乙個函式調整arr,使arr中要麼所有的偶數字上都是偶數,要麼所有的奇數字上都是奇數上。要求 如果陣列長度為n,時間複雜度請達到o n 額外空間複雜度請達到o 1 下標0,2,4,6.算作偶數字,下標1,3,5,7.算作奇數字,例如 1,2,3,4 調整...

new 調整奇數偶數順序使奇數字於偶數前面

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