POJ 1007 - DNA Sorting

输入m个长度为n的DNA序列,把他们按照逆序数从小到大稳定排序输出。

 

计算一下逆序数,排个序。

 1 #include <iostream>
 2 #include <string>
 3 #include <cstdio>
 4 #include <algorithm>
 5 using namespace std;
 6 struct P{
 7     int x;
 8     string s;
 9     void cal(int n)
10     {
11         x=0;
12         for(int i=0;i<n-1;i++)
13         {
14             for(int j=i+1;j<n;j++)
15             {
16                 if(s[i]>s[j]) x++;
17             }
18         }
19     }
20 }a[105];
21 int n,m;
22 bool cmp(P a,P b)
23 {
24     return a.x<b.x;
25 }
26 int main()
27 {
28     scanf("%d%d",&n,&m);
29     for(int i=0;i<m;i++)
30     {
31         cin>>a[i].s;
32         a[i].cal(n);
33     } 
34     sort(a,a+m,cmp);
35     for(int i=0;i<m;i++) cout<<a[i].s<<endl;
36 }

 

posted @ 2016-07-17 11:30  nicetomeetu  阅读(127)  评论(0编辑  收藏  举报