劍指筆記 21 調整陣列順序使奇數字於偶數前面

2021-09-16 18:07:09 字數 556 閱讀 2604

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

有的偶數字於位於陣列的後半部分

思路:(1)當不需要保證奇數和奇數,偶數和偶數之間的相對位置保持不變的時候,可以使用兩個指標,第乙個指標指向陣列的第乙個位置,它只向後移動;第二個指標指向陣列的最後乙個位置,只向前移動。如果第乙個指標指向的是偶數,第二個指標指向的是奇數就交換這兩個數字。**一就是這種思路。為了擴充套件性更好一些,我們可以按照**2這樣來做。

**原文::

(2)但是如果要保證順序不變,就不能這樣做了。我們可以從頭到尾遍歷一遍 陣列,每乙隻和前面乙個數字交換位置就行。**3如下。

**:**1:

private static void reorderarray(int arr)

**3:

public void reorderarray(int array)

if(array[j]%2 == 0)}}

array[j+1] = temp;  //如果當前元素為偶數,則不需要處理,將賦給temp的值再賦給array[i]就可以了。}}

劍指offer21 調整陣列順序使奇數字於偶數前面

調整陣列順序使奇數字於偶數前面 指定兩個指標pbegin和pend,在pbegin pend時 也就滿足了整個陣列都是奇在偶數前。public class solution21 while pbegin pend funcpend array pend if pbegin 2.1 暴力解 從頭開始遍...

劍指Offer 21 調整陣列順序使奇數在偶數前

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分 示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案 在陣列左右定義兩個索引,左邊找出偶數,右邊找出奇數,找到後交換並讓左索引右移,右索引左移...

劍指面試題21 調整陣列順序使奇數字於偶數前面

題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分 思路 我認真看了一下,題目應該是要求在原地調整,所以這裡不能再開闢乙個陣列 第一種 從頭往尾掃瞄陣列,遇到乙個偶數就把它提出來,依次把其後的數字前移一格,最後將偶數插...