Pku 1007 DNA Sorting

Pku 1007 DNA Sorting

在网上想寻找翻译的时候发现了很多人写得解题报告,原以为这个是动归或者逆序数才能解决的问题,没想到用选择排序居然在0MS AC 了。。。
使用了结构体的形式,发现这对排序和标记都有很好的效果!另外NUM这个标记和判断好像是有些多余 呵呵。。。
附上自己的代码:

 1 #include < stdio.h >
 2
 3 struct  Q {
 4    int x ;
 5    char y[51];   
 6    int num; 
 7}
;   
 8
 9 Q a[ 100 ];
10
11 int  main() {
12   
13    int m , n ; 
14    scanf("%d%d",&m,&n);
15    for(int i = 0 ; i < n ; i ++ ){
16        scanf("%s",a[i].y);
17      a[i].x = 0 ;
18       a[i].num=i;
19    for(int j = 0 ; j < m - 1 ; j ++ ){
20        
21        for(int k = j+1 ; k < m ; k ++){
22                if(a[i].y[k]<a[i].y[j])
23                a[i].x++;
24        }
    
25    }
 
26    
27    }

28    Q temp;
29    for(int i = 0 ; i < n - 1 ; i ++ ){
30        for(int j = i+1 ; j < n ; j ++ ){
31                if(a[i].x>a[j].x){
32                        temp=a[i];
33                        a[i]=a[j];
34                        a[j]=temp;
35                }
  
36                if(a[i].x == a[j].x && a[i].num < a[j].num){
37                        temp=a[i];
38                        a[i]=a[j];
39                        a[j]=temp;
40                }
    
41        }
    
42    }
     
43     
44      for(int i = 0 ; i < n  ; i ++ ){
45      printf("%s\n",a[i].y);
46      }
    
47     
48 
49    return 0;
50}

你可能感兴趣的:(Pku 1007 DNA Sorting)