POJ-1007-DNA_Sorting
2014-07-15 11:01
218 查看
核心思想:
结构体存储字符串和逆序数,用快排排序。逆序数的计算。(分治法)
注记:
分治法compute;
compute;
merge;(分别排序,计算)
二维字符串数组的初始化
char **str; str = (char **)malloc(sizeof(char *) * strnum); for (i = 0; i < strnum; i++) { str[i] = (char *)malloc(sizeof(char) * (strlen + 1)); }
字符指针比大小
int compString(const void *a, const void *b) { return (*((char *)a)) - (*((char *)b)); }
memcpy
c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
void *memcpy(void *dest, const void *src, size_t n);
逆序数的另外两种计算方法--基本思路
int i, j, rn = 0; for (i = 0; i < slen; i++) { for (j = i + 1; j < slen; j++) { if (s[i] > s[j]) { rn++; } } }
逆序数的另外两种计算方法--反序遍历字符串
反序遍历字符串,记录A、C、G出现的次数。
int i, rn = 0; int A = 0, C = 0, G = 0; for (i = slen - 1; i >= 0; i--) { switch (s[i]) { case 'A': A++; break; case 'C': C++; rn += A; break; case 'G': G++; rn += A + C; break; case 'T': rn += A + C + G; break; default: break; } }
参考http://blog.csdn.net/lyy289065406/article/details/6647305
相关文章推荐
- [POJ 1007] DNA Sorting C++解题
- POJ 1007 DNA Sorting 水题 结构体
- pku1007 poj 1007 hdu1379 DNA Sorting
- POJ_1007:DNA Sorting解题报告
- poj 1007:DNA Sorting(水题,字符串逆序数排序)
- POJ 1007 DNA Sorting——Output Limit Exceeded
- poj1007——DNA Sorting
- poj1007 -- DNA Sorting
- POJ DNA SORTING 1007 ANSWER
- POJ 1007 DNA Sorting(水题) 逆…
- poj 1007 (nyoj 160) DNA Sorting
- Mathematics:DNA Sorting(POJ 1007)
- POJ 1007 DNA Sorting GCC编译
- poj 1007 (nyoj 160) DNA Sorting
- POJ 1007 DNA Sorting
- POJ 1007 解题报告 DNA Sorting
- POJ 1007 DNA Sorting 水
- poj 1007 dna逆序数
- PKU ACM- 1007 题 java DNA Sorting
- POJ 1007 DNA排序求逆序数