我需要在VB.NET中实现Diff算法来查找一段文本的两个不同版本之间的变化。我在网上有一个侦察员,并找到了几种不同的算法。
这里有人知道我可以实施的“最佳”算法吗?
答案 0 :(得分:7)
我已经在codeproject上使用了c#版本,它真的很适合我想要的......
http://www.codeproject.com/KB/recipes/diffengine.aspx
如果你自己不能这样做,你可以通过online converter将其翻译成VB.net ...
答案 1 :(得分:7)
我喜欢Eugene Myers的An O(ND) Difference Algorithm and Its Variations。我相信这是GNU diff中使用的算法。有了好的背景,请参阅Wikipedia。
这是理论上的,您可能希望找到源代码,但我不知道VB中的任何内容。
答案 2 :(得分:3)
我不确定它是否是最好的差异算法,但您可能想查看那些谈论SOCT4和SOCT6的链接
http://dev.libresource.org/home/doc/so6-user-manual/concepts
还有:
http://www.loria.fr/~molli/pmwiki/uploads/Main/so6group03.pdf
http://www.loria.fr/~molli/pmwiki/uploads/Main/diffalgo.pdf