题意就不多说了。
要点1:稳定排序对于此题来说需要对类排序,用到sort函数,并且需要自己定义一个bool函数。
要点2:对结构体排序是对其公共变量逆序数排序的,所以要算逆序数。
对于sort函数:此网站有详细的解释。
#include<iostream>
#include<algorithm>
using namespace std;
class DNA
{
public:
char a[100];
int num; //逆序数
};
bool cmp(DNA n,DNA m)
{
return n.num<m.num;
}
int main()
{
int n,m;
DNA str[100];
while(cin>>n>>m)
{
int i;
for(i = 0;i < m; i++)
cin>>str[i].a;
for(i = 0;i < m; i++) //三重循环计算逆序数
{
int j,sum = 0;
for(j = 0;j < n-1; j++)
for(int X = j+1;X < n; X++)
if(str[i].a[j]>str[i].a[X])sum++;
str[i].num = sum;
}
sort(str,str+m,cmp);
for(i = 0;i < m; i++)
cout<<str[i].a<<endl;
}
return 0;
}