dna的排列方式,dna排列图
描述
序列中"无序"的一个度量是彼此无序的条目对的数量。例如,在字母序列"达阿贝克"中,这个度量是5,因为D比它右边的四个字母大,而E比它右边的一个字母大。这个度量被称为序列中反转的次数。序列" AACEDGG "只有一个反转(E和D) -它几乎是排序的-而序列" ZWQM "有6个反转(它是最不排序的-正好是排序的相反)。
您负责对脱氧核糖核酸字符串序列(仅包含四个字母甲、丙、庚和T的序列)进行编目。但是,您希望对它们进行分类,不是按字母顺序,而是按"排序"顺序,从"排序最多"到"排序最少"。所有的弦都一样长。
投入
第一行包含两个整数:正整数n (0 n=50)给出字符串的长度;以及给出字符串数量的正整数m (0米=100).后面跟着m行,每一行包含一个长度为n的字符串。
输出
输出输入字符串的列表,从"排序最多"到"排序最少"。由于两个字符串可以相等地排序,那么按照原来的顺序输出它们。
样本值输入
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
加特卡加特
CCCGGGGGGA
ATCGATGCAT
抽样输出
CCCGGGGGGA
AACATGAAGG
加特卡加特
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA
来源
北美中东部1998
num[0]=INF;//初始化数字[0]为最大地址,方便后来的选择排序法输出字符串数组
for(int I=1;我我)
宫颈癌前病变海峡;
//求出逆序数
for(int j=0;j j)
for(int k=j 1;k k)
if (str[i][j] str[i][k])
num[I];
int p=0;
//选择排序法,输出字符串数组
for(int I=1;我我)
for(int j=1;j j)
如果(数字[j]数字[p])
p=j;
cout str[p]endl;
num[p]=INF;//将当前数字[p]置为最大地址,方便下一个循环的比较
系统("暂停");
返回0;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。