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