Pergunta
Preciso implementar um algoritmo Diff em VB.NET para encontrar as alterações entre duas versões diferentes de um trecho de texto.Eu fiz uma pesquisa na web e encontrei alguns algoritmos diferentes.
Alguém aqui conhece o 'melhor' algoritmo que eu poderia implementar?
Solução
Bem, eu usei a versão c# no codeproject e é muito boa para o que eu queria...
http://www.codeproject.com/KB/recipes/diffengine.aspx
Você provavelmente pode traduzir isso para VB.net por meio de um conversor on-line se você não consegue fazer isso sozinho...
Outras dicas
Eu gosto Um algoritmo de diferença O(ND) e suas variações por Eugene Myers.Acredito que seja o algoritmo usado no GNU diff.Para um bom histórico, veja Wikipédia.
Isso é bastante teórico e você pode querer encontrar o código-fonte, mas não conheço nenhum em VB.
Não sei ao certo se são os melhores algoritmos de comparação, mas você pode querer dar uma olhada nos links que falam sobre SOCT4 e SOCT6
http://dev.libresource.org/home/doc/so6-user-manual/concepts
e também:
http://www.loria.fr/~molli/pmwiki/uploads/Main/so6group03.pdf
http://www.loria.fr/~molli/pmwiki/uploads/Main/diffalgo.pdf