본문 바로가기
카테고리 없음

Levenshtein_distance

by Pooh0216 2013. 6. 16.

http://en.wikipedia.org/wiki/Levenshtein_distance


 INT LevenshteinDistance (문자들 [1 .. m】, 문자 T [1 .. N])
 {
   / 모든 i와 j, D [I, J]에 /은 Levenshtein 거리 사이를 개최한다
   / / S의 우선 문자와 t의 첫 번째 J 문자;
   D가 가지고있는 / / 메모 (M +1) * (N +1) 값을
   선언 INT D [0 .. m, 0 .. N]
 
   D / 모든 요소를 선택 취소 / 각 요소를 0으로 설정
 
   / / 소스 접두사에 의해 빈 문자열로 변환 될 수
   / / 모든 문자를 삭제
   나는 1에서 m은
     {
       D [I, 0] = I
     }
 
   / / 타겟 접두사는 빈 소스 접두어에서 도달 할 수있는
   / / 모든 문자를 삽입하여
   1에서 n으로 일본에 대한
     {
       D [0, j를] = J
     }
 
   1에서 n으로 일본에 대한
     {
       나는 1에서 m은
         {
           경우의 [I] = t [J]를 / / 문자열 인덱스는 선택한 언어로 1 기반으로하는 가정 것 <-하지 : S 【I-1] = T [J-1] ->
                                / / 다른 당신이 사용해야 할 것 S 【I-1] = T [J-1]이 일을하지 않는 것은 IndexOutOfBound 오류를 throw 할 수 있습니다
             D [I, J] : = D [I - 1, J - 1] 필요 / / 아무 작업도하지
           그렇지 않으면
             D [I, J] : = 최소
                     (
                       D [I - 1, J] + 1, / / 삭제
                       D [I, J - 1] + 1, / / 삽입
                       D [I - 1, J - 1] + 1 / / 대체
                     )
         }
     }
 
   반품 D [M, N] 

}