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

2021-10-03 03:30:52 字數 822 閱讀 5918

題目鏈結

題目描述

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

i表示當前指標,j=i+1表示後乙個指標

核心思路: 如果array[i]為偶數,j向後尋找第乙個奇數,奇數前插入,偶數整體部分後移。

每遇到乙個偶數後的第乙個奇數,就移動偶數,插入奇數,最壞的情況n/2個偶數移動n/2次。

時間複雜度o(n2), 空間複雜度o(1)。

class solution 

if(j == len)

int tmp = array[j]

;for

(int k = j; k > i;

--k)

array[i]

= tmp;

}++i;}}

};

遍歷將奇數放進vector1,偶數放進vector2,再將vector1,vector2賦給array。

時間複雜度o(n),空間複雜度o(n)。

class solution 

else

}int len_a = a.

size()

;int len_b = b.

size()

;for

(int i =

0; i < len_a;

++i)

for(

int i =

0; i < len_b;

++i)}}

;

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

題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。vs2010 include include using namespace std 要求穩定性,類插入排序 clas...

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

題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。一 自己的解法 遍歷每個數字,分別依次將遍歷到的奇 偶數存在兩個vector容器中,最後合併在乙個容器中 合併 vecto...

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

題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。思路 從前向後找,先找到第乙個偶數i,再向後找,找到偶數後的第乙個奇數j,下邊是關鍵 先用temp臨時變數存一下array...