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

2021-07-27 05:16:19 字數 1260 閱讀 6860

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分。

看了別人的思路,類似於快速排序,思路:下面來自於:

要求把奇數放在陣列的前半部分,偶數放在陣列的後半部分,因此所有的奇數應該位於偶數的前面,也就是說我們在掃瞄這個陣列的時候,如果發現有偶數在奇數的前面,我們可以交換他們的數序,交換之後就符合要求了。

因此我們可以維護兩個指標,第乙個指標初始化時指向陣列的第乙個數字,它只向後移動;第二個指標初始化時指向陣列的最後乙個數字,它指向前移動。在兩個指標相遇之前,第乙個指標總是位於第二個指標的前面。如果第乙個指標的數字是偶數,並且第二個指標指向的數字是奇數,我們就交換兩個數字。

// 向前移動pend,直到它指向奇數

while (begin < end && datas[end] % 2 == 0)

if (begin < end)}}

如果題目是要求演算法穩定,該怎麼做?即

並保證奇數和奇數,偶數和偶數之間的相對位置不變。

這個有點難,有些沒想明白,先把別人**貼出來,好好想想。

1,類似插入排序,當前數是奇數,就往前找,遇到偶數就往它前面插

class solution }}

} }};

//兩個思路吧,第乙個思路:類似冒泡演算法,前偶後奇數就交換:

class solution }}

}};

//第二個思路:再建立乙個陣列

class solution

else

}vector::iterator ib2, ie2;

ib2 = array_temp.begin();

ie2 = array_temp.end();

for (; ib2 != ie2; ib2++) //將新陣列的數新增到老陣列}};

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

解題思路 此題有兩個解題思路,我先寫出第乙個,後續補充 1.利用python的特點,建立兩個陣列,乙個存放奇數,乙個存放偶數,最後將兩個陣列合併即可。這題麻煩的一點是要保持順序。輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並...

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

思路1 從頭遍歷找到偶數從陣列中刪除並移動到陣列末尾 arr 2 3,4 5,8 7,1 for x in range 0 len arr if arr x 2 0 s arr x arr.remove arr x print arr 思路2 兩個指標,第乙個初始化指向陣列的第乙個數字,只向後移動 ...

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

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,是的所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。coding utf 8 時間複雜度為o n 空間複雜度為o n class solution def reorderarray s...