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;
}
全部评论

相关推荐

Java面试先知:我也是和你一样的情况,hr 说等开奖就行了
点赞 评论 收藏
分享
10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务