• 파일시티 이벤트
  • LF몰 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

C언어로 구현한 KMP 알고리즘

*어*
개인인증판매자스토어
최초 등록일
2021.03.15
최종 저작일
2020.04
6페이지/파일확장자 어도비 PDF
가격 1,000원 할인쿠폰받기
다운로드
장바구니

목차

1. 과제 목표
2. 설계
3. 결과 보고
4. 자료구조 및 알고리즘 분석
5. 전체 코드

본문내용

1. 과제 목표
- 두 개의 스트링(string, pat)을 입력으로 받아 pattern matching을 하는 KMP 알고리즘을 구현하시오.

2. 설계
- 스트링 안에 원하는 패턴을 찾는 가장 단순한 방법은 한 칸씩 대입하며 틀린 경우 1칸을 이동하여 다시 패턴의 처음부터 비교하는 경우입니다. 이 때의 복잡도는 스트링의 길이 M, 패턴의 길이 N이라고 했을 때, O(n*m)이 됩니다.
- 본 과제에서는 같은 작업에 대해 복잡도를 O(n+m)까지 줄일 수 있는 KMP 알고리즘 (KnuthMorris-Pratt Algorithm)을 강의자료에서 소개된 코드 그대로 사용했습니다. 사용한 자료 구조로는, 검색할 문자열 string과 패턴 문자열 pat, 그리고 정수형 failure 세 개의 배열을 사용했습니다.

3. 결과 보고
- Input으로 주어진 kmp.txt의 내용을 확인한 결과입니다.

4. 자료구조 및 알고리즘 분석
- MAX_STRING_SIZE와 MAX_PATTERN_SIZE는 각각 100으로 설정했으므로 찾을 문자열과 패턴은 100글자 이내의 배열로 선언됩니다. 함수는 failure 배열의 값을 설정하는 fail 함수와, 생성된 failure 배열의 값을 이용해 실제 패턴을 매칭하는 pmatch 함수로 나뉩니다.
파일 입출력을 통해 찾을 문자열과 패턴 문자열을 입력 받는 부분입니다. 또한 pat을 주소값 형태로 fail 함수에 넘긴 후 처리가 끝나면 pmatch 함수의 정수로 반환되는 결과값이 그대로 출력되도록 넘겨주었습니다.

참고 자료

없음
*어*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

최근 본 자료더보기
탑툰 이벤트
C언어로 구현한 KMP 알고리즘
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업