DNA排序

首先求出逆序数,然后对逆序数进行排队,最后输出排序后的DNA序列。对于求逆序数,只需对序列进行遍历,找出本应出现在某字符之后,却出现在了它之前的字符数即可。

#include 
#include 
#include 
#include 
int main()
{
    int n,m,i,j,k,s[150]= {0};
    char str[150][60],p[60];
    scanf("%d%d",&n,&m);
    for(i=0; i<m; i++)
    {
        scanf("%s",&str[i]);
        for(j=0; j<n-1; j++)
            for(k=j+1; k<n; k++)
                if(str[i][k]<str[i][j])
                    s[i]++;
    }
    for(i=0; i<m-1; i++)
        for(j=i+1; j<m; j++)
            if(s[i]>s[j])
            {
                strcpy(p,str[i]);
                strcpy(str[i],str[j]);
                strcpy(str[j],p);
                k=s[i];
                s[i]=s[j];
                s[j]=k;
                for(k=0; k<60; k++)
                    p[k]=0;
            }
    for(i=0; i<m; i++)
        printf("%s\n",str[i]);
    return 0;
}
全部评论

相关推荐

SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务