小智 13
Subversion的diff引擎使用O(NP)序列比较算法.
为了您的信息,我自己在github的后续页面中有各种编程语言的实现.
https://github.com/cubicdaiya/onp
以下是两篇描述其他文本比较算法的论文,这些算法通常应输出“更好”(例如,更小,更有意义)的差异:
第一篇论文引用了第二篇,并提到了它的算法:
Heckel [3]指出了与LCS技术类似的问题,并提出了一种线性石灰算法来检测块运动。如果字符串中几乎没有重复的符号,则该算法将充分执行。但是,否则该算法将给出较差的结果。例如,给定两个字符串aabb和bbaa,Heckel的算法无法发现任何公共子字符串。
在第一篇论文中提到的这个答案,并在第二个这样的回答,既类似SO问题: