- 참고 사이트: http://www-igm.univ-mlv.fr/~lecroq/string/
- 참고 자료:
-
문자열
- 유한한 길이의 기호들. 가장 간단한 텍스트 모델
-
w=xyz에 대하여 (x,y,z,w 모두 문자열)
- x는 w의 접두어(prefix)
- y는 w의 접미어(suffix)
- xy는 w의 부문자열(substring) = 연속된 부분 문자열
- xz는 w의 부분열(subsequence) = 비연속된 부분 문자열
-
문자열 사이의 유사성
-
해밍거리(hamming distance)
- 같은 문자길이의 두 문자열사이에 다른 문자의 수
- (예) d(text, that) = 2
-
편집거리(edit distance)
- 한 문자열을 다른 문자열로 변환하기 위해 필요한 작업(입력/삭제/치환)의 최소 수
- (예) d(text, tax) = 2 (설명) text에서 ○1e를 a로 치환 ○2t를 삭제
-
-
유한 오토마타
문자열 탐색에 사용
-
string matching algorithm(문자열 검색 알고리즘)의 특징
- 문자열검색: 텍스트내의 하나의 유형(검색어, 패턴)에 대한 실직적인 모든예를 검색
-
색인되지 않은 텍스트에서의 검색
- 예: 검색기의 출력과정에서 필터링(하이라이팅)
-
윈도우: 텍스트를 패턴의 길이단위로 나눈 것
- 예: 텍스트 abcde, 패턴 ab 일 때, 윈도우는 ab, bc, cd, de
-
문자열 검색의 성능
- 최악의 경우 복잡도 O(n)이 목표
-
알파벳수=C, 텍스트의 길이=n, 검색어(패턴)의 길이=m (n>m)
- 텍스트에서 검사해야할 회수: n-m+1
-
텍스트에서 검색어와 일치한 것을 찾을 확률: 1/Cm
- 두문자가 문자가 같을 확률: 1/C
- 텍스트에서 검색어와 일치할 최대 회수: (n-m+1)/Cm
-
문자열 검색 알고리즘의 종류
- Brute Force(Naive) 알고리즘
- Knuth-Morris-Pratt 알고리즘
-
Boyer-Moore 알고리즘
- Boyer-Moore-Horspool 알고리즘
- Shift-Or 알고리즘
- Karp-Rabin 알고리즘
- 문자열 검색 알고리즘 성능 비교
'자료구조 & 알고리즘 > 문자열 매칭 알고리즘' 카테고리의 다른 글
[박혜웅] Boyer-Moore-Horspool (0) | 2010.03.27 |
---|---|
[박혜웅] Boyer-Moore (0) | 2010.03.27 |
[박혜웅] 연속된 부분 문자열 (sistring) (0) | 2010.03.27 |
[강한구] Shift or (0) | 2009.10.10 |
[강한구] Brute Force (0) | 2009.10.09 |