【プログラミングテーマ】奇数が偶数より前になるように配列順序を調整する


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;

}