题目:已知数组A[n]中的元素为整型,设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,
要求算法时间复杂度为O(n)。
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int a[10] = {0, 5, 12, 8, 5, 19, 24, 3, 7, 34};
int *p = a;
int *q = a+sizeof(a)/sizeof(int)-1;
int temp;
while(p < q)
{
while(*p%2 != 0)
{
p++;
}
while(*q%2 == 0)
{
q--;
}
if(p<q)
{
temp = *p;
*p = *q;
*q = temp;
}
}
return 0;
}