题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

#include <iostream>
#include <vector>
using namespace std;
struct Student {
    string name;
    int score;
};
void merge(vector<Student>& students, vector<Student>& temp, int left, int mid,int right, int sortOrder) {
    int i = left, j = mid+1, k = left;
    while (i <= mid && j <= right) {
        if ((sortOrder == 0 && students[i].score > students[j].score)||
            (sortOrder == 1 && students[i].score < students[j].score)||
            (students[i].score==students[j].score&&i<=mid)) {
            temp[k++] = students[i++];
        } else {
            temp[k++] = students[j++];
        }
    }
    while (i <= mid) temp[k++] = students[i++];
    while (j <= right) temp[k++] = students[j++];
    for (int t = left; t <= right; ++t) {
        students[t] = temp[t];
    }
}
void mergeSort(vector<Student>& students, vector<Student>& temp, int left,int right, int sortOrder) {
    if (left < right) {
        int mid =(left + right) / 2;
        mergeSort(students, temp, left, mid, sortOrder);
        mergeSort(students, temp, mid + 1, right, sortOrder);
        merge(students, temp, left, mid, right, sortOrder);
    }
}
int main() {
    int n, sortOrder;
    cin >> n >> sortOrder;
    vector<Student> students(n);
    vector<Student> temp(n); 
    for (int i = 0; i < n; ++i) {
        cin >> students[i].name >> students[i].score;
    }
    mergeSort(students, temp, 0, n - 1, sortOrder);
    for (const auto& student : students) {
        cout << student.name << " " << student.score << endl;
    }
    return 0;
}

全部评论

相关推荐

02-12 00:59
已编辑
哈尔滨工业大学 产品经理
华为 软件开发岗 20.6*16薪 本科
点赞 评论 收藏
分享
01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务