将数组中所有偶数按从小到大的顺序存放在数组前半部,将所有奇数按从小到大的顺序存放在数组的后半部
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int jiou(int *a, int n){
int x=0, y=n-1;
int t;
while(x<y){
while(a[x]%2 == 0)
x++;
while(a[y]%2 == 1)
y--;
if(x<y){
t = a[x];
a[x] = a[y];
a[y] = t;
}
}
if(x>=y && a[x]%2 == 0)
return x;
if(x>=y && a[x]%2 == 1)
return x-1;
}
int main(){
int num, ou;
scanf("%d", &num);
int a[num];
for(int i=0; i<num; i++)
scanf("%d", &a[i]);
ou = jiou(a,num);
for(int i=0; i<num; i++)
printf("%d ", a[i]);
printf("\n");
sort(a, a+ou+1);
sort(a+ou+1, a+num);
for(int i=0; i<num; i++)
printf("%d ", a[i]);
}