百练1007DNA排序

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:58   1999   0
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#define N 55
#define M 105
using namespace std;
typedef struct dna {
char str[N];
int num;//逆序对个数
}DNA;
DNA a[M];
int n, m;
int count_(char s[])//返回值为输入数组的逆序对个数
{
int cnt = 0;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (s[i] > s[j]) cnt++;
}
}
return cnt;
}
int cmp(DNA x, DNA y)//按照逆序对从小到大排序
{
return x.num < y.num;
}
int main()
{
scanf("%d%d", &n, &m);

for (int i = 0; i < m; i++)
{
scanf("%s", a[i].str);
a[i].num = count_(a[i].str);
}

sort(a, a + m, cmp);
for (int i = 0; i < m; i++)
printf("%s\n", a[i].str);
return 0;
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP