Mao2K
Mao2K
2019-11-20 19:59
采纳率: 0%
浏览 798

python:DNA排序--求逆序数。

【问题描述】
对于给定的序列{ a[1], a[2],... , a[n]},元素a[i] 的逆序数定义为inv(a[i])=|{a[k]|a[i]>a[k],i<k<=n}|。序列A 的逆序数定义为inv(A)=inv(a[1])+inv(a[2])+.....+inv(a[n])。
事实上,序列A 的逆序数刻画出序列A中元素已排序的程度。逆序数越小,序列A 已排序的程度就越高。当序列A 已排好序时,其逆序数为0。
生物信息学家在进行分子计算研究DNA序列时需要将若干长度相同的DNA串按其逆序数从小到大排序。
编写程序,对于给定长度相同的DNA串,按其逆序数从小到大的顺序排序。
DNA中的字符按照字符顺序比较大小,数据从"input.txt"的文件读入,并将结果输出到"output.txt"中。
【输入形式】
第一行有两个整数,分别为DNA长度L和DNA数量n
之后n行分别为n个DNA串
最后以两个0结束
【输出形式】
按逆序数从小到大每行输出一个DNA串。

【样例输入】
从input.txt输入:
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT
00
【样例输出】
向output.txt输出:
CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

相关推荐