#include<iostream>
using namespace std;
void ReorderOddEven(int *pData, unsigned int length)
{
if (pData == nullptr || length == 0)
return;
int *pBegin = pData;
int *pEnd = pData + length - 1;
while (pBegin < pEnd)
{
while (pBegin < pEnd && *pBegin % 2 != 0)
pBegin++;
while (pBegin < pEnd && *pEnd % 2 == 0)
pEnd--;
if (pBegin < pEnd)
{
int temp = *pBegin;
*pBegin = *pEnd;
*pEnd = temp;
}
}
}
int main()
{
int a[] = {1,2,3,4,5,6};
unsigned int length = sizeof(a) / sizeof(a[0]);
ReorderOddEven(a, length);
for (int i = 0; i < 6; i++)
{
cout << a[i] << " ";
}
cin.get();
return 0;
}