컴퓨터공학

[자료구조] 라빈 카프 문자열 매칭

walk_through_me 2019. 10. 14. 23:16

라빈 카프 문자열 매칭(Rabin–Karp algorithm)

  • ASCII 코드 기반의 해시 함수를 이용하여 특정한 문자열에 대한 해시 값을 구함
  • 연속적인 문자열이 이어지는 상황이므로 해시 함수의 동작에 있어서 연산속도가 O(1)
  • 라빈카프 문자열 매칭 알고리즘에서 해시함수는 각 문자의 ASCII 코드 값에 2의 제곱 수를 차례대로 곱하여 더한 값을 구함.
  • 일반적으로 서로 다른 문자열의 경우 해시값이 다르게 나옴. 그러나 해시기반이기 때문에 충돌 처리 필요
다음 해시 값 = 2 * (현재 해시값 - 가장 앞에 있는 문자의 수치) + 새 문자의 수치

 

 

 

 

 

참고 | Wikipedia, Fast campus 컴퓨터 공학 전공 필수