Мне нужно реализовать алгоритм 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.pdfhttp://www.loria.fr/~molli/pmwiki/uploads/Main/diffalgo.pdf
Мне нравится Разностный алгоритм O (ND) и его варианты Юджина Майерса. Я считаю, что это алгоритм, который использовался в GNU diff. Для хорошего фона см. Википедия.
Это довольно теоретически, и вы можете захотеть найти исходный код, но мне ничего не известно в VB.