考察的内容的话其实是排序稳定和如何排序,这个的话sort底层数据量小的时候是冒泡,数据量大的时候是快排,其实是不稳定的,所以这里需要自己写排序,想写归并来着,归并的话代码更多,先是试了下冒泡,其实是没有超时的,所以就用了冒泡排序。这里的话swap是可以对结构体进行交换的,这个之前我没有用过
#include #include #include using namespace std; struct student{ string name; int score; }stu[1005]; int flag,n; void popSort0(){ for(int i=n-1;i>0;i--){ for(int j=0;j<i;j++){ if(stu[j].score<stu[j+1].score){ swap(stu[j],stu[j+1]); } } } } void popSort1(){ for(int i=n-1;i>0;i--){ for(int j=0;j<i;j++){ if(stu[j].score>stu[j+1].score){ swap(stu[j],stu[j+1]); } } } } int main(){ while(cin>>n>>flag){ for(int i=0;i<n;i++){ cin>>stu[i].name>>stu[i].score; } if(flag==1){ popSort1(); }else{ popSort0(); } for(int i=0;i<n;i++){ cout<<stu[i].name<<" "<<stu[i].score<<endl; } } return 0; }