排序问题题解大合集
算法1
我们用结构体来进行排序
我们的结构是这样的:
整数
小数
字符串
所以我们就可以得出一下代码
bool cmp(node a,node b)
{
if(a.a!=b.a)return a.a<b.a;
if(a.b!=b.b)return a.b<b.b;
return a.c<b.c;
}
- 只要整数没重复,我们就排序
- 如果条件一重复了,我们就看只要小数没重复,我们就排序
- 如果条件一和条件二都重复了,我们就拿字符串排序
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
struct node{
int a;
double b;
string c;
}s[10001];
int n;
bool cmp(node a,node b)
{
if(a.a!=b.a)return a.a<b.a;
if(a.b!=b.b)return a.b<b.b;
return a.c<b.c;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i].a>>s[i].b>>s[i].c;
sort(s+1,s+n+1,cmp);
cout<<fixed<<setprecision(2);
for(int i=1;i<=n;i++)cout<<s[i].a<<' '<<s[i].b<<' '<<s[i].c<<'\n';
}
orzzzzzzzzzzz
sssssssssssstO