DNA排序

题目直接暴力,但是考察了稳定排序和非稳定排序,使用sort直接WA了(不稳定排序),而使用stable_sort就过了(稳定排序)

[cpp]  view plain copy print ?
  1. #include<iostream>  
  2. #include<algorithm>  
  3. #include<cstring>  
  4. #include<cstdio>  
  5.   
  6. using namespace std;  
  7.   
  8. const int maxn = 1005;  
  9. int n;  
  10.   
  11. struct node{  
  12.     char str[ maxn ];  
  13.     int val;  
  14.     bool operator< ( const node &a )const{  
  15.         return val < a.val;  
  16.     }  
  17. }edge[ maxn ];  
  18.   
  19. void Deal( int k ){  
  20.     //cout << len << endl;  
  21.     int sum = 0;  
  22.     //cout << edge[ k ].str << endl;  
  23.     //cout << n << endl;  
  24.     forint i = 0; i < n; ++i ){  
  25.         forint j = i + 1; j < n; ++j ){  
  26.             if( edge[ k ].str[ i ] > edge[ k ].str[ j ] ){  
  27.                 sum++;  
  28.                 //cout << "aaaaaaaaaaaaaaaa" << endl;  
  29.             }  
  30.   
  31.         }         
  32.     }  
  33.     edge[ k ].val = sum;  
  34. }  
  35.   
  36. int main(){  
  37.     int  m;  
  38.     while( scanf( "%d%d", &n, &m ) != EOF ){  
  39.         forint i = 0; i < m; ++i ){  
  40.             forint j = 0; j < n; ++j ){  
  41.                 cin >> edge[ i ].str[ j ];  
  42.             }  
  43.             //getchar();  
  44.             edge[ i ].val = 0;  
  45.             Deal( i );  
  46.             //cout << edge[ i ].val << endl;  
  47.         }  
  48.         stable_sort( edge, edge + m );  
  49.         forint i = 0; i < m; ++i )  
  50.             cout << edge[ i ].str << endl;  
  51.         puts( "********************");  
  52.     }  
  53. }  

你可能感兴趣的:(DNA排序)