我正在寻找在C++程序中使用的LCS算法的(空间)高效实现。输入是两个随机访问整数序列。
我目前使用维基百科页面关于LCS的动态编程方法。但是,这在内存和时间上具有O(mn)行为,并且对于较大的输入而言会因为内存不足错误而死亡。
我已经阅读了Hirschberg的算法,它大大提高了内存使用率,Hunt-Szymanski和Masek和Paterson。由于实现这些并不是微不足道的,所以我宁愿用现有的实现在我的数据上尝试它们。有谁知道这样的图书馆?我会想象,因为文本差异工具很常见,应该有一些开源库吗?高效的最长公共子序列算法库?
12
A
回答
3
当您搜索类似的东西时,请尝试使用scholar.google.com。找到学术作品要好得多。它变成了 http://www.biotec.icb.ufmg.br/cabi/artigos/seminarios2/subsequence_algorithm.pdf 这个文件,“调查最长的公共子序列算法”。
+1
因为OP确实希望所述算法的库实现而不是描述,所以咒语+1。但无论如何可能是一篇有用的论文。 – 2010-09-09 10:42:00
+0
此外,这将有助于了解发布日期和其他详细信息。 – 2010-09-09 10:45:00
0
不是C++,但Python,但我认为可用。
0
Hirschberg's Algorithm嵌入一个JavaScript实现:几乎C.
相关问题
- 1. 最长的公共子序列printdDiff
- 2. 最长的公共子序列差异
- 3. 最长公共子序列优化
- 4. 打印最长公共子序列
- 5. 最长的公共子列表
- 6. 的Java:最长公共子
- 7. 多个序列的最长公共子序列
- 8. 三个序列的最长公共子序列int
- 9. 多序列比对(最长公共子序列)?
- 10. 使用递归列表的最长公共子序列
- 11. 查找两组最大公共子集的有效算法?
- 12. 算法 - 最长摆动子序列
- 13. 基于SQL的数据差异:最长的公共子序列
- 14. 查找2个字符串的最长公共子序列?
- 15. 查找唯一最长公共子序列的数量
- 16. 最长公共子序列的Java(递归)
- 17. 最长的公共子序列实现-python
- 18. 最长公共子序列未显示结果
- 19. 从表中寻找最长公共子序列
- 20. 寻找滑动窗口中最长公共前缀的算法
- 21. 匹配序列的高效算法
- 22. 无法理解最长增加子序列的算法
- 23. 最长子序列
- 24. 非常大的字符串之间最长的公共子序列
- 25. 使用后缀树可以解决最长的公共子序列吗?
- 26. 针对最长公共子序列的输入大小绘制时间问题
- 27. 高效增长的原子阵列
- 28. 最长的子序列
- 29. 最长的子序列的长度
- 30. 高效最常用的后缀算法?
您是否有兴趣在实际的最长公共子或只是它的长度? – IVlad 2010-09-07 14:08:49
我需要实际的顺序。 – BuschnicK 2010-09-07 14:35:41
对一些快速的网页搜索感到失望并没有发现任何特别有用的东西(C语言中'char'的特殊实现的加载,但没有Hirschberg的线性空间加速或模板化C++的元素类型)。如果你找到(或创建:D)任何东西,请更新! – 2010-09-08 06:04:24