要求:空间复杂度O(1),时间复杂度为O(n)
#include<iostream.h>
void main()
{
int a[10]={2,10,89,18,24,21,67,41,43,9};
int start=0,end=sizeof(a)/sizeof(int)-1;
while(start<end)
{
int tmp;
while(a[start]%2==1)
start++;
while(a[end]%2==0)
end--;
if(start<end)
{
tmp=a[start];
a[start]=a[end];
a[end]=tmp;
start++;
end--;
}
}
for(start=0;start<sizeof(a)/sizeof(int);start++)
cout<<a[start]<<" ";
cout<<endl;
}