天津响应式网站设计,百度不更新网站,湖南环保设备公司中企动力网站建设技术支持,wordpress自助发货系统描述
给定一些同学的信息#xff08;名字#xff0c;成绩#xff09;序列#xff0c;请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示#xff1a; jack 70 peter 96 Tom 70 smith 67
从高到低…描述
给定一些同学的信息名字成绩序列请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示 jack 70 peter 96 Tom 70 smith 67
从高到低 成绩 peter 96 jack 70 Tom 70 smith 67
从低到高
smith 67
jack 70
Tom 70
peter 96
注0代表从高到低1代表从低到高
数据范围人数1≤n≤200 1≤n≤200
进阶时间复杂度O(nlogn) O(nlogn) 空间复杂度O(n) O(n)
输入描述
第一行输入要排序的人的个数n第二行输入一个整数表示排序的方式之后n行分别输入他们的名字和成绩以一个空格隔开
输出描述
按照指定方式输出名字和成绩名字和成绩之间以一个空格隔开
示例1
输入
3
0
fang 90
yang 50
ning 70
复制输出
fang 90
ning 70
yang 50
复制
示例2
输入
3
1
fang 90
yang 50
ning 70复制输出
yang 50
ning 70
fang 90
#include iostream
#includevector
#includemap
#includealgorithm
using namespace std;//选出最小
void selectSort(vectorstring A, int n, vectorstring name) {for (int i 1; i n; i) {int k i;for (int j i; j n; j) {if (A[j] A[k]) {k j;}}string temp A[i];string tempName name[i];A[i] A[k];name[i] name[k];A[k] temp;name[k] tempName;}
}
// 选出最大
void selectSort2(vectorstring A, int n, vectorstring name) {for (int i 1; i n; i) {int k i;for (int j i; j n; j) {if (A[j] A[k]) {k j;}}string temp A[i];string tempName name[i];A[i] A[k];name[i] name[k];A[k] temp;name[k] tempName;}
}int main() {int n;int method;string name;string score;vectorstring scores;vectorstring namearry;vectorvectorstring group;while (cin n method) {for (int i 0; i n; i) {cin name;scores.push_back(name);cin score;scores.push_back(score);group.push_back(scores);}if (method 0) {//降序scores.clear();for (int i 0; i group.size(); i) {namearry[i] group[i][1];scores[i] group[i][0];}selectSort(scores, group.size(), namearry);for (int j 0; j group.size(); j) {cout namearry[j] scores[j] endl;}} else if (method 1) {//升序scores.clear();namearry.clear();for (int i 0; i group.size(); i) {namearry[i] group[i][1];scores[i] group[i][0];}selectSort2(scores, group.size(), namearry);for (int j 0; j group.size(); j) {cout namearry[j] scores[j] endl;}}}return 0;
}
// 64 位输出请用 printf(%lld)