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

2021-10-08 06:57:44 字數 648 閱讀 6106

nowcoder

需要保證奇數和奇數,偶數和偶數之間的相對位置不變,這和書本不太一樣。

方法一:建立乙個新陣列,時間複雜度 o(n),空間複雜度 o(n)。

public

void

reorderarray

(int

nums)

}private

boolean

iseven

(int x)

方法二:使用冒泡思想,每次都將當前偶數上浮到當前最右邊。時間複雜度 o(n2),空間複雜度 o(1),時間換空間。

public

void

reorderarray

(int

nums)}}

}private

boolean

iseven

(int x)

private

void

swap

(int

nums,

int i,

int j)

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

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

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

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

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

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。方法1 新建陣列分別按照陣列中的奇數和偶數進行儲存即可。方法2 類似於插入排序,先用乙個k儲存當前奇數個數,之後將遍歷的奇數放入第k...