1028. List Sorting (25) java
来源:互联网 发布:2015年nba新秀体测数据 编辑:程序博客网 时间:2024/06/03 04:52
https://www.patest.cn/contests/pat-a-practise/1028
//C版
#include <bits/stdc++.h>using namespace std;struct node { int ID; char name[10]; int grade;};bool cmp1(node a, node b) { return a.ID <= b.ID; }bool cmp2(node a, node b) { if ( strcmp(a.name, b.name) == 0 ) return a.ID <= b.ID; return (strcmp(a.name, b.name) < 0);}bool cmp3(node a, node b) { if ( a.grade == b.grade ) return a.ID <= b.ID; return a.grade <= b.grade;}int main(){ int n, d; while ( cin >> n >> d ) { node a[n]; for ( int i = 0; i < n; i++ ) { scanf("%d %s %d", &a[i].ID, a[i].name, &a[i].grade); } if ( d == 1 ) sort(a, a+n, cmp1); else if ( d == 2) sort(a, a+n, cmp2); else sort(a, a+n, cmp3); //result for ( int i = 0; i < n; i++ ) { printf("%06d %s %d\n", a[i].ID, a[i].name, a[i].grade); } } return 0;}
//C++版
#include <bits/stdc++.h>using namespace std;typedef struct node{ int ID; char Name[10]; int Grade;}Node;vector<Node> ResultList;bool cmp1(const node a, const node b){ return a.ID < b.ID;}bool cmp2(const node a, const node b){ //char 类型字符创比较大小 用strcmp if (strcmp(a.Name, b.Name) == 0) { return a.ID < b.ID; } else return strcmp(a.Name, b.Name) < 0;}bool cmp3(const node a, const node b){ if (a.Grade == b.Grade) { return a.ID < b.ID; } else return a.Grade < b.Grade;}void sortwith(int n, int k){ for (int i = 0; i < n; i++) { node k; scanf("%d %s %d", &k.ID, k.Name, &k.Grade); ResultList.push_back(k); } switch (k) { case 1:// sortwithID(); sort(ResultList.begin(), ResultList.end(), cmp1); break; case 2:// sortwithName(); sort(ResultList.begin(), ResultList.end(), cmp2); break; case 3:// sortwithGrade(); sort(ResultList.begin(), ResultList.end(), cmp3); break; default: break; }}void printSortResult(int n){ for (int i = 0; i < n; i++) { printf("%06d %s %d\n", ResultList[i].ID, ResultList[i].Name, ResultList[i].Grade); }}int main(){ int n, k; while (~scanf("%d %d", &n, &k)) { ResultList.clear(); sortwith(n, k); printSortResult(n); } return 0;}
//Java版,最后一点貌似超时,最好C/C++
import java.util.*;public class Main { static class Student { int id; String name; int grade; Student(int id, String name, int grade) { this.id = id; this.name = name; this.grade = grade; } } public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); int n, d; Scanner in = new Scanner(System.in); n = in.nextInt(); d = in.nextInt(); for ( int i = 0; i < n; i++ ) { int id = in.nextInt(); String name = in.next(); int grade = in.nextInt(); list.add(new Student(id, name, grade)); } if ( d == 1 ) { sort(1, list); } else if ( d == 2){ sort(2, list); } else { sort(3, list); } for ( int i = 0; i < n; i++ ) { Student cas = list.get(i); System.out.printf("%06d %s %d", cas.id, cas.name, cas.grade); System.out.println(); } } static void sort(int re, List<Student> list) { if ( re == 1 ) { Collections.sort(list, new comparator1()); } else if ( re == 2 ) { Collections.sort(list, new comparator2()); } else { Collections.sort(list, new comparator3()); } } static class comparator1 implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub return (o1.id - o2.id) <= 0 ? -1 : 1; } } static class comparator2 implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub if ( o1.name.equals(o2.name) ) return (o1.id - o2.id) <= 0 ? -1 : 1; return o1.name.compareTo(o2.name); } } static class comparator3 implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub if ( o1.grade == o2.grade ) return (o1.id - o2.id) <= 0 ? -1 : 1; return (o1.grade - o2.grade <= 0) ? -1 : 1; } }}
0 0
- 1028. List Sorting (25) java
- [PAT]1028. List Sorting (25)@Java实现
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- hdoj1846Brave Game
- 基础算法(三)---归并排序(Java)
- 卢辉《数据挖掘与数据化运营实战:思路、方法、技巧和应用》第一遍 读书笔记
- 线性表
- Python进阶之迭代器和生成器
- 1028. List Sorting (25) java
- java基础学习笔记之数据类型
- 第九周 贪心算法
- 315. Count of Smaller Numbers After Self Hard
- mysql 使用mariadb 安全审计插件
- 在Tomcat下部署项目
- SpriteKit对于“子弹”物体的模拟
- 2016女生赛 1005 GirlCat【DFS】
- 搞定Android开发圆形头像