【プログラミングテーマ】奇数が偶数より前になるように配列順序を調整する
3167 ワード
54.奇数が偶数より前(配列)になるように配列順序を調整する.タイトル:整数配列を入力し、配列内の数字の順序を調整して、すべての奇数が配列の前半に位置し、すべての偶数が配列の後半に位置するようにします.要求時間複雑度はO(n)である.
小題、秒滅.
小題、秒滅.
/*
54. ( )。
: , , ,
。 O(n)。
*/
#include <stdio.h>
#include <algorithm>
using namespace std;
void oddfirst(int * in, int len)
{
int * p1 = in;
int * p2 = in + len - 1;
while(p1 < p2)
{
if((*p1) % 2 == 0 && (*p2) % 2 == 1)
{
swap(*p1, *p2);
p1--;
p2--;
}
else
{
if((*p1) % 2 == 1)
p1++;
if((*p2) % 2 == 0)
p2--;
}
}
}
int main()
{
int a[20] = {1, 2, 3, 4,5 ,6 ,7,9,8};
oddfirst(a, 9);
return 0;
}