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

2021-06-16 20:14:28 字數 545 閱讀 9270

思路:

1. 設定兩個指標,初始狀態第一指標指向陣列的第乙個數,第二個指標指向陣列的最後乙個數;

2. 若第乙個指標指向的數是奇數,則指標向右移動一位,第二個指標指向的數是偶數,則指標向左移動;

3. 若第乙個指標和第二個指標指向的數恰好分別為偶數和奇數,則交換數字。

**:

#include "stdafx.h"

#include using namespace std;

void reorderoddeven(int *narr, int nlength)

{ if (narr != null && nlength > 0)

{ int low = 0;

int high = nlength -1;

while (low < high)

{ while ((low

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

思路 1.設定兩個指標,初始狀態第一指標指向陣列的第乙個數,第二個指標指向陣列的最後乙個數 2.若第乙個指標指向的數是奇數,則指標向右移動一位,第二個指標指向的數是偶數,則指標向左移動 3.若第乙個指標和第二個指標指向的數恰好分別為偶數和奇數,則交換數字。include stdafx.h inclu...

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

最簡單的辦法就是開闢和原陣列同樣大小的空間,順次掃瞄原陣列2次,第一次將所有奇數放進新陣列中,第二次將偶數放入就可以。這種方法的時間複雜度為o n 空間複雜度為o n 如下 void reorderoddeven vector arr vectornewarr int i for i 0 i以上演算...

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

這個題目要求把奇數放在陣列的前半部分,偶數放在陣列的後半部分,因此所有的奇數應該位於偶數的前面。也就是說我們在掃瞄這個陣列的時候,如果發現有偶數出現在奇數的前面,我們可以交換它們的順序,交換之後就符合要求了。因此我們可以維護兩個指標,第乙個指標初始化時指向陣列的第乙個數字,它只向後移動 第二個指標初...