zoukankan      html  css  js  c++  java
  • 1104--DNA排序

    问题描述:

    逆序数可以用来描述一个序列混乱程度的量。例如,“DAABEC”的逆序数为5,其中D大于它右边的4个数·,E大于它右边的1的个数,4+1=5,又如,“ZWQM”的逆序数为3+2+1+0=6.现在有许多长度一样的字符串,每个字符串里面只会出现四种字母(A,T,C,G)。要求编写程序,将这些字符串按照它们的逆序数进行排序

    输入:

    第一行包括两个正整数,第一个表示字符串长度,第二表示字符串数量

    输出:

    将每个字符串按照其逆序数进行排序,如果两个字符串的逆序数相等,则按照输入中的两者的先后顺序进行排列

    样列输入:

    10 6
    AACATGAAGG
    TTTTGGCCAA
    TTTGGCCAAA
    GATCAGATTT
    CCCGGGGGGA
    ATCGATGCAT输出:

    CCCGGGGGGA
    AACATGAAGG
    GATCAGATTT
    ATCGATGCAT
    TTTTGGCCAA
    TTTGGCCAAA

     1 #include <stdio.h>
     2 #include <string.h>
     3 struct node
     4 {
     5  int key; // key 存原字符串的编号
     6  char str[55];
     7 }dna[110];
     8 int s(char str[])
     9 {
    10 int sum=0,i,j;
    11 int len=strlen(str);
    12 int sd[50]={0};
    13 for(i=0;i<len-1;i++)
    14 {
    15 for(j=i+1;j<len;j++)
    16 {
    17 if(str[i]>str[j]) sd[i]++;
    18 }
    19 }
    20 
    21 for(i=0;i<len;i++) sum=sum+sd[i];
    22 return sum;
    23 }
    24 
    25 void sort(int res[],int m)//简单的一个排序
    26 {
    27 int i,j,t;
    28 for(i=0;i<m;i++)
    29 for(j=i+1;j<m;j++)
    30 if(res[i]>res[j])
    31 {
    32 t=res[i];
    33 res[i]=res[j];
    34 res[j]=t;
    35 }
    36 }
    37 
    38 int main(void)
    39 {
    40 int n,m,i,j;
    41 int res[110];
    42 scanf("%d %d",&n,&m);
    43 if(n>0 && n<=50 && m>0 && m<=100)
    44 {
    45 for(i=0;i<m;i++)
    46 scanf("%s",&dna[i].str);
    47 for(i=0;i<m;i++)
    48 {
    49 res[i]=s(dna[i].str);
    50 dna[i].key=res[i];
    51 }
    52 sort(res,m);
    53 for(i=0;i<m;i++)
    54 for(j=0;j<m;j++)
    55 {
    56 if(dna[j].key==res[i] )
    57 {
    58 printf("%s
    ",dna[j].str);
    59  dna[j].key=1000000;/*就是这个地方。。。原本是赋的0,那样逆序度为0 的情况就会有问题*/
    60 }
    61 }
    62 }
    63 return 0;
    64 }
  • 相关阅读:
    Informix IDS 11零碎规画(918考试)认证指南,第 7 部分: IDS复制(15)
    Informix IDS 11琐屑管理(918考试)认证指南,第 7 局部: IDS复制(10)
    近期招聘
    Classes 单元下的公用函数目录
    Graphics 单元下的公用函数目录
    CnPack 使用的组件命名约定
    Windows 单元下的公用函数目录(RZ_)
    Variants 单元下的公用函数目录
    StrUtils 单元下的公用函数目录
    Math 单元下的公用函数目录
  • 原文地址:https://www.cnblogs.com/xlzhh/p/4251559.html
Copyright © 2011-2022 走看看