栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

蓝桥杯:奖学金(排序算法) Java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯:奖学金(排序算法) Java

-

 

分析:

我们会发现要比较总成绩,语文成绩以及学号,三个指标用普通数组难以表示,所以可以采用类Grade来存储这三个指标,并且用TreeSet来来存储Grade,这样还可以根据逻辑让set自动排序

进步:

如果指标比较多,可以采用Grade类来表示,同时用TreeSet进行存储利用Treeset灵活使用排序规则,使用匿名内部类

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.Set;
// 1:无需package
// 2: 类名必须Main, 不可修改
import java.util.TreeSet;

public class Main {
    private static class Grade{
        Integer num;
        Integer chinese;
        Integer grade;
        public Grade(Integer num,Integer chinese,Integer grade){
            this.num=num;
            this.chinese=chinese;
            this.grade=grade;
        }
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        Set set=new TreeSet(new Comparator() {
            @Override
            public int compare(Grade grade1,Grade grade2){
                //利用compareTo进行比较
                //正数为升序,负数为降序
                int result1=-grade1.grade.compareTo(grade2.grade);
                //如果result1=0表示这个比不出来,则换下一个指标
                if(result1!=0){
                    return result1;
                }

                int result2=-grade1.chinese.compareTo(grade2.chinese);
                if(result2!=0){
                    return result2;
                }
                return grade1.num.compareTo(grade2.num);
            }
        });
        
        int chinese=0;
        for (int i = 0; i < n; i++) {
            int sum=0;
            for(int j=0;j<3;j++){
                sum+=scan.nextInt();
                if(j==0){
                    chinese=sum;
                }
            }
            set.add(new Grade(i+1,chinese,sum));
        }

        int count=0;
        for (Grade grade : set) {
            count++;
            System.out.println(grade.num+" "+grade.grade); 
            if(count==5){
                break;
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749843.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号