我正在尋找在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. 最長的公共子序列算法
- 2. 最長公共子序列長度(LCS)的快速(er)算法
- 3. 最長的公共子串算法
- 4. 爲最長公共實施並行算法子序列
- 5. 最長的公共子序列Algo
- 6. 最長公共子序列的界限
- 7. 最長的公共子序列printdDiff
- 8. Ocaml中最長的公共子序列
- 9. 最長的公共子序列差異
- 10. 最長公共子序列優化
- 11. 打印最長公共子序列
- 12. 最長公共子序列重現
- 13. 最長公共迴文子序列
- 14. Python:列表的最長公共子序列的長度
- 15. 最長的公共子列表
- 16. 的Java:最長公共子
- 17. 記憶最長公共子序列算法的遞歸解決方案
- 18. 三個序列的最長公共子序列int
- 19. 最長的公共子序列(還原序列)
- 20. 多個序列的最長公共子序列
- 21. 最長公共子串的方法
- 22. 多序列比對(最長公共子序列)?
- 23. 倍捻最長公共子
- 24. 最長公共子錯誤
- 25. 一系列字符串的最長公共子序列
- 26. 使用遞歸列表的最長公共子序列
- 27. 查找兩組最大公共子集的有效算法?
- 28. 算法 - 最長擺動子序列
- 29. 最長公共子算法O(N * M)蠻力
- 30. 基於SQL的數據差異:最長的公共子序列
您是否有興趣在實際的最長公共子或只是它的長度? – 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