Мне нужно реализовать алгоритм Diff в VB.NET, чтобы найти изменения между двумя различными версиями фрагмента текста. У меня был разведчик в сети и я нашел несколько разных алгоритмов.
Кто-нибудь здесь знает «лучший» алгоритм, который я мог бы реализовать?
Ну, я использовал версию c # на codeproject, и она действительно хороша для того, что я хотел ...
http://www.codeproject.com/KB/recipes/diffengine.aspx
Вы, вероятно, можете перевести это на VB.net через онлайн-конвертер, если не можете сделать это сами ...
Я не знаю точно, если это лучшие алгоритмы сравнения, но вы можете проверить те ссылки, которые говорят о 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
Мне нравится O (ND) разностный алгоритм и его вариации Юджина Майерса. Я считаю, что это алгоритм, который был использован в GNU diff. Для хорошего фона см. Википедию .
Это довольно теоретически, и вы можете захотеть найти исходный код, но я не знаю ни одного в VB.