剑指offer十六:调整数组顺序使奇数位于偶数前面
#include<iostream>
using namespace std;
void reorderOddEven(int* a, unsigned int length)
{
if (a == NULL || length == 0)
return;
int* pBegin = a;
int* pEnd = a + length - 1;
while (pBegin < pEnd)
{
while (pBegin < pEnd && (*pBegin & 0x1)==1 )
pBegin++;
while (pBegin < pEnd && (*pEnd & 0x1) == 0)
pEnd--;
if (pBegin < pEnd)
{
int temp = *pBegin;
*pBegin = *pEnd;
*pEnd = temp;
}
}
}
int main()
{
int a[] = { 1, 2, 3, 4, 5 };
reorderOddEven(a, 8);
for (int i = 0; i < 8; i++)
cout << a[i] << '\t';
}