重排序,使陣列的奇數在偶數前面

2021-08-02 17:29:15 字數 692 閱讀 5987

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

情況1:

不需要保證偶數的相對位置

可以從第0個和第len-1開始,時間複雜度為o(n),不計算交換的時間的話。

**:public static void reorderarray2(int array)

if ((array[j] & 1) == 0)

temp = array[i];

array[i] = array[j];

array[j] = temp;

i++;

j--;}

情況2:需要保證偶數的相對位置

可以建立兩個陣列分別儲存奇數和偶數,然後分別複製到陣列中即可。時間複雜度o(2n),不過空間需要增加兩倍。

**;public static void reorderarray(int array)

int a=new int[len];

int b=new int[len];

int count1=0;

int count2=0;

for(int i=0;i

方法2:

每次找到乙個偶數就將其儲存起來,將後面的數向前移動,然後將該偶數放到最後位置上上,時間複雜度為o(n*n).

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

問題描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。思路分析 新建立2個陣列,分別存放奇數和偶數,最後再拼接即可。for迴圈遍歷 function reorderarray ...

整數組順序使奇數字於偶數前面

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案之一。解法 二,雙指標實現 我們可以使用兩個指標left和right。left從左邊開始掃...

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

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