Knuth-Morris-Pratt 알고리즘이 Boyer-Moore보다 빠른 예?


10

Boyer-Moore와 비교 한 Knuth-Moriss-Pratt 알고리즘에 관한 이 페이지 는 Boyer-Moore 알고리즘이 작은 스킵 거리로 인해 KMP가 더 잘 수행 될 수있는 경우를 설명합니다.
이 사례를 분명히 보여줄 수있는 좋은 예 (텍스트, 패턴)를 찾고 있습니다.


답변:


3

다음과 같은 다양한 패턴에 대해 이러한 문자열 일치 알고리즘에 대해 좋은 실험을 수행 한 논문이 있습니다. " 문자열 일치 알고리즘 비교 : 정보 내용 보안에 대한 지원 "

또한 일본어에 대한 이러한 문자열 일치 알고리즘에 대한 연구가 있습니다 : 일본어 텍스트에 대한 문자열 일치 알고리즘의 비교 및 ​​개선

나는 이것이 알고리즘 효율성에 대해 이해하는 데 도움이되기를 바랍니다!


3

다음 패턴은 KMP가 더 빠르게 작동하도록합니다.

T = aaaaaaaaaa P = aaaa KMP는 10 개의 비교 단계를 시도하고 Boyer-Moore는 28을 사용합니다.

또 다른 예:

T = aaaaaaaaaa P = abab KMP는 BM이 12를 시도하는 8 개의 비교 단계를 시도합니다.


첫 번째 예에서 두 알고리즘은 첫 번째 교대에서 즉시 일치하는 항목을 찾습니다. 어떻게 4 개 이상의 비교를 수행합니까?
BartoszKP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.