`` Лучший '' алгоритм различий

Мне нужно реализовать алгоритм Diff в VB.NET, чтобы найти изменения между двумя разными версиями фрагмента текста. Я поискал в сети и нашел несколько разных алгоритмов.

Кто-нибудь знает «лучший» алгоритм, который я мог бы реализовать?

Ответов (3)

Решение

Ну, я использовал версию С # в codeproject, и она действительно хороша для того, что я хотел ...

http://www.codeproject.com/KB/recipes/diffengine.aspx

Вы, вероятно, сможете перевести это на VB.net через онлайн-конвертер, если не можете сделать это самостоятельно ...

Мне нравится алгоритм разности O (ND) и его вариации Юджина Майерса. Я считаю, что это алгоритм, который использовался в GNU diff. Для получения хорошей информации см. Википедию .

Это довольно теоретически, и вы можете захотеть найти исходный код, но мне ничего не известно в VB.

Я не знаю наверняка, лучший ли это алгоритм сравнения, но вы можете проверить те ссылки, которые говорят о 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