Szukałem szalonego wyjaśnienia algorytmu różnicowania, który działa i jest wydajny.
Najbliższy mi jest ten link do RFC 3284 (z kilku postów na blogu Erica Sinka), który opisuje w zrozumiały sposób format danych, w których przechowywane są wyniki różnic. Jednak nie ma żadnej wzmianki o tym, jak program osiągnąłby te wyniki podczas wykonywania różnicy.
Próbuję to zbadać z osobistej ciekawości, ponieważ jestem pewien, że przy implementacji algorytmu różnicowania muszą istnieć kompromisy, które są dość jasne czasami, gdy patrzysz na różnice i zastanawiasz się "dlaczego program porównujący wybrał to jako zmianę zamiast tego?"...
Gdzie mogę znaleźć opis wydajnego algorytmu, który wyprowadziłby VCDIFF?
Nawiasem mówiąc, jeśli zdarzy ci się znaleźć opis rzeczywistego algorytmu używanego przez SourceGear's DiffMerge, byłoby jeszcze lepiej.
UWAGA: najdłuższy wspólny podciąg nie wydaje się być algorytmem używanym przez VCDIFF, wygląda na to, że robią coś mądrzejszego, biorąc pod uwagę format danych, którego używają.