文章
18
粉丝
0
获赞
115
访问
16.1k
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
	int n;
	scanf("%d",&n);
	int a[1001];
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
	} 
	int low=0;
	int high=n-1;
	while(low<high){
		while(low<high&&a[high]%2==0) high--;
		while(low<high&&a[low]%2==1) low++;
		if(low<high){
			int zanc=a[high];
			a[high]=a[low];
			a[low]=zanc;
		}
		
	}
	int acchigh=low;
	int zancmax;
	for(int i=0;i<low;i++){
		for(int j=1;j<=acchigh;j++){
			if(a[j-1]>a[j]){
				zancmax=a[j];
				a[j]=a[j-1];
				a[j-1]=zancmax;
			}
		}
		acchigh--; 
	}
	
	acchigh=n-1;
	for(int i=low;i<n;i++){
		for(int j=low+2;j<=acchigh;j++){
			if(a[j-1]>a[j]){
				zancmax=a[j];
				a[j]=a[j-1];
				a[j-1]=zancmax;
			}
		}
		acchigh--;
	}
	for(int i=0;i<n;i++){
		printf("%d ",a[i]);
	} 
}
登录后发布评论
暂无评论,来抢沙发