题解 | #成绩排序#

成绩排序

http://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

使用冒泡排序,具有稳定性,平均时间复杂度为O(n*n)

#include <stdio.h>
#include <stdlib.h>

#define N 200

typedef struct student{
    char name[15];
    int score;
}STUDENT;

int SortDesc(int a,int b){
    return a<b;
}

int SortAsc(int a,int b){
    return a>b;
}

// 冒泡排序
void BubbleSort(STUDENT stu[],int n,int (*compare)(int a,int b)){
	STUDENT temp;
    int i,j,flag;
	
	for(i=0;i<n-1;i++){
		flag=0;
		for(j=n-1;j>i;j--){
			if((*compare)(stu[j-1].score ,stu[j].score)){
				flag=1;
				temp = stu[j-1];
				stu[j-1] = stu[j];
				stu[j] = temp;
			}
		}
		if(flag==0){
			break;
		}
	}
}

void PrintStu(STUDENT stu[],int n){
    int i;
    for(i=0;i<n;i++){
        printf("%s %d\n",stu[i].name,stu[i].score);
    }
}

int main(){
    int i,j,n,sortMode;
    STUDENT stu[N];

    while(scanf("%d%d",&n,&sortMode)!=EOF){
        for(i=0;i<n;i++){
            scanf("%s",stu[i].name);
            scanf("%d",&stu[i].score);
    }
    if(sortMode==1){
        BubbleSort(stu,n,SortAsc);
    }else{
        BubbleSort(stu,n,SortDesc);
    }
        PrintStu(stu,n);
    }
}

全部评论

相关推荐

看新闻上说,印度媒体都在密集发申请攻略,咨询量直接涨了30%印度、韩国、新加坡的申请意愿特别突出,感觉要成科技人才的新选择了~我的offer还没有呢!
ysb:哥们就不明白了,自己的人才都留不住,然后找外国,咋滴给外国人才高福利朝九晚五不加班是吗,然后我们大学生996,加班,无offer,摆地摊,送外卖是吗,有点意思,很英明
我的秋招日记
点赞 评论 收藏
分享
牛客50327486...:腾讯官方:我们没有人机对局
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务