劍指offer 13 調整陣列中的偶數到奇數後面

2021-09-05 09:11:59 字數 1406 閱讀 2703

1 冒泡解法 穩定

2 輔助陣列 穩定

3 兩個指標 不穩定

#include #include using namespace std;

class solution

bool label = false;

for (int i = 0; i < array.size(); i++)

}if (label == false)}}

//輔助陣列完成

void reoerderarray2(vector&array)

vectortemp;

vectortp;//兩個空陣列

for (int i = 0; i < array.size(); i++)

}for (int i = 0; i < array.size(); i++)

}for (int j=0 ; j < temp.size(); j++)

int m = 0, q = 0;

while (tp[q])

}void reoerderarray3(vector&array)

vectortemp;

vector::iterator ib1, ie1;//迭代器

ib1 = array.begin();

ie1 = array.end();

for (; ib1 != ie1;)

else

}vector::iterator ib2, ie2;

ib2 = temp.begin();

ie2 = temp.end();

for (; ib2 != ie2; ib2++)

/*int q = 0;

while (temp[q]) */

}//兩個指標比較,但是不穩定,數度快

void reoerderarray4(vector&array)

vector::iterator left, right;//迭代器

left = array.begin();

right = array.end() - 1;

while(left < right)

//執行條件是現在已是偶數,等著下邊移到奇數

while (left < right && (*right & 0x01) == 0)

//執行條件是前邊是偶數,後邊是奇數

if (left < right) }}

};int main()

; vectorvec(a1, a1 + 6);

solution s;

s.reoerderarray4(vec);

for (int i = 0; i < vec.size(); i++)

return 0;

}

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

思路 依次判斷每個元素,若是奇數則放到odd列表中,若是偶數則放到even列表中。然後將兩個列表合併再返回。coding utf 8 class solution def reorderarray self,array write code here odd even x len array for...

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

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。建立雙向佇列,遍歷陣列,奇數前插入,偶數後插入。最後使用assign方法實現不同容器但相容的型別賦值。知識點一 c 借助雙向佇列能從...

劍指offer13 調整陣列使奇數在偶數前面

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。對於乙個需要按順序或者顛倒順序的題,首先就應該想到使用佇列或者棧來實現。直接用兩個陣列實現也是一樣 本題需要按順序,因此用2個佇列來...