2010-02-11 3 views
4

도움이되는 위키 백과는 diff가 가장 긴 공통 서브 시퀀스를 구현한다고 주장합니다.linux diff -y의 알고리즘은 무엇입니까?

이렇게는 할 수 없습니다. Diff에는 적어도 -y 모드에서 add, remove 및 substitute의 세 가지 유형의 보고서가 있습니다. LCS에는 '대체'에 대한 개념이 없습니다.

diff 알고리즘은 무엇입니까? 나는 그것이 Levenshtein 거리라고 믿지 않을 이유가 있지만, 나는 이것을 오인 분석했을지도 모른다.

+0

서로 옆에 삽입 및 삭제를 대체로 간주 할 수 없습니까? –

+0

그 대답 일 수도 있습니다. – bmargulies

+0

해당 소스 코드는 추가 및 제거 만 사용합니다. 언뜻보기에는 가장 긴 공통 부분 시퀀스처럼 보입니다 ... (http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/analyze.c?id=fecd0079fe6e15b0f53bf953721d838d9099bf05 참조) – mre

답변

2

This answer (ioplex)은 GNU diff가 Eugene Myers의 "O (ND) diff 알고리즘"을 구현한다고 말합니다.

관련 문제