POJ1007-DNA Sorting(C语言实现)
来源:互联网 发布:买家怎么开淘宝店 编辑:程序博客网 时间:2024/05/19 03:42
#include <stdio.h>
#include <stdlib.h>
#define MAX_CHARS 50
#define MAX_STRINGS 100
struct DNA{
char ch[MAX_CHARS];
int inversions;
};
int cmp(const void *a ,const void *b);
int main(void)
{
int chars, strings;
int i, j;
int num_A, num_C, num_G, num_T;
struct DNA dna[MAX_STRINGS];
if(scanf("%d %d", &chars, &strings))
{
for(i = 0; i < strings; ++i) //输入数据
{
getchar();
for(j = 0; j < chars; ++j)
dna[i].ch[j] = getchar();
}
for(i = 0; i < strings; ++i) //计算逆序数
{
num_A = num_C = num_G = num_T = 0;
dna[i].inversions = 0;
for(j = 0; j < chars; ++j)
{
switch(dna[i].ch[chars - j -1])
{
case 'A': num_A++; break;
case 'C': num_C++; dna[i].inversions += num_A;break;
case 'G': num_G++; dna[i].inversions += (num_A + num_C);break;
case 'T': num_T++; dna[i].inversions += (num_A + num_C + num_G);break;
default : break;
}
}
}
qsort(dna, strings, sizeof(dna[0]), cmp); //排序
for(i = 0; i < strings; ++i) //输出
{
for(j = 0; j < chars; ++j)
{
putchar(dna[i].ch[j]);
}
printf("\n");
}
}
return 0;
}
int cmp(const void *a ,const void *b)
{
return (*(structDNA *)a).inversions > (*(structDNA *)b).inversions ?1 : -1;
}
- POJ1007-DNA Sorting(C语言实现)
- POJ1007浅析------DNA Sorting(排列DNA)
- poj1007 DNA Sorting(求逆序数)
- POJ1007 DNA Sorting
- poj1007(DNA Sorting)
- POJ1007 DNA Sorting 水题
- POJ1007·DNA Sorting
- POJ1007:DNA Sorting
- POJ1007 DNA Sorting
- poj1007 DNA Sorting
- poj1007 - DNA Sorting
- poj1007 DNA Sorting 排序
- POJ1007-DNA Sorting-ACM
- POJ1007 DNA Sorting
- POJ1007--DNA Sorting
- POJ1007 DNA Sorting
- POJ1007.DNA Sorting
- POJ1007 DNA Sorting
- Linux schedule (目录)
- 探索Oracle之LogMiner 最佳实践一
- SPSS实例
- 【提高组NOIP2017】时间复杂度 题解 分治系统处理
- C【技术】北京賽車6码滚雪球7碼8碼走勢技巧穩定計畫规律
- POJ1007-DNA Sorting(C语言实现)
- Java代码模拟Redis
- testADFADSA
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- APT34利用CVE-2017-11882针对中东攻击样本分析
- eclipse重新设置workspace路径
- Shell 基础知识梳理三
- s1
- s3