文章

17

粉丝

0

获赞

57

访问

2.4k

头像
成绩排序2.0 题解:结构体排序,冒泡||快排
P1159 清华大学上机题
发布于2026年3月25日 11:04
阅读数 78

#include <stdio.h>
typedef struct Att{
	int num;
	int q;
	
}Stu;

Stu stu[101];
void mp( Stu a[],int len){
	for(int i=0;i<len;i++){
		for(int j=0;j<len-i-1;j++){
			if(a[j].q>a[j+1].q){
				Stu temp = a[j];
				a[j] = a[j+1];
				a[j+1]=temp;
			}else if(a[j].q==a[j+1].q){
				if(a[j].num>a[j+1].num){
				Stu temp = a[j];
				a[j] = a[j+1];
				a[j+1]=temp;
				}
			}
		}
	}

}

void qsort(Stu a[],int l,int r){
	if(l>=r) return ;
	int i=l-1;
	int j=r+1;
	Stu x= a[(l+r+1)/2];
	while(i<j){
		do i++; while (a[i].q<x.q||(a[i].q==x.q&&a[i].num<x.num));
		do j--;while(a[j].q>x.q||(a[j].q==x.q&&a[j].num>x.num));
		if(i<j){
				Stu temp = a[i];
				a[i] = a[j];
				a[j]=temp;
		}
	}
	qsort(a,l,i-1);
	qsort(a,i,r);
		
}
int main(){
	int n;
	scanf("%d",&n);
	int i=0;
	while(n--){
	
		scanf("%d%d",&stu[i].num,&stu[i].q);
		i++;
	}
	qsort(stu,0,i-1);
	for(int j=0;j<i;j+...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发