题目来源:数位排序
之前写过一个刷题中遇到的排序问题洛谷1093,先根据学生的总成绩排序,如果总分一样的情况下再根据语文排序。总结最好的方法就是写一个类继承Comparable接口来重写compare方法。
之前学艺不精,都是直接拿数据结构(List、Map)肝,比如这道题,我一开始直接拿List存储 1~n ,然后把list传数组,然后写一个sort方法用冒泡对 数组 进行排序,结构就是超时
因为如果测试集中有相当大的数据时,冒泡排序是一种很耗时的方法,它只适合对少量的数据进行排序。
使用类继承Comparable接口重写compare的方法:
import java.util.*; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { private static List<Integer> list = new ArrayList<>(); public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); scan.close(); for(int i=1;i<=n;i++){ list.add(i);