代码如下:
/*调整数组的顺序使得数组中偶数在奇数前面*/
#include <iostream>
#include <stdio.h>
using namespace std;
class Solution
{
public:
void swap(int &a ,int &b)
{
int temp = b;
b = a;
a = temp;
}
int * reorder(int array[],int length)
{
if(length <= 1 || array == NULL )
return array;
int lp = 0, rp = length -1;
while(rp > lp)
{
while(lp < rp && array[lp] %2 == 0 )
lp ++;
while(lp < rp && array[rp] %2 == 1)
rp --;
if(lp < rp) swap(array[lp],array[rp]);
}
return array;
}
void Print(int array[],int length)
{
int i = 0;
while( i < length)
cout << array[i++]<<'\t';
cout << endl;
}
};
int main()
{
Solution sol;
int a[10] = {3,5,8,3,2,1,8,4,0,4};
sol.reorder(a,10);
sol.Print(a,10);
Solution sol1;
int a1[10] = {4,5,6,7,8,9,0,2,4,1};
sol1.reorder(a1,10);
sol1.Print(a1,10);
system("PAUSE");
return 0;
}
运行结果: