문돌이 Theo

  • 홈
  • 태그
  • 방명록
  • GitHub

보이어-모어 알고리즘 1

패턴 매칭에 사용되는 알고리즘

고지식한 알고리즘 (Brute Force) 본문 문자열을 처음부터 끝까지 차례대로 순회하면서 패턴 내의 문자들을 일일이 비교하는 방식으로 동작 시간 복잡도 최악의 경우 모든 위치에서 패턴을 비교해야 하므로 O(MN)이 됨 비교횟수를 줄일 수 있는 방법은 무엇이 있을까? 예시 코드 p = 'is' # 찾을 패턴 t = 'This is a book~!' # 전체 텍스트 M = len(p) N = len(t) def BruteForce(p, t): i = 0 # t의 인덱스 j = 0 # p의 인덱스 while j < M and i < N: if t[i] != p[j]: i = i - j j = -1 i = i + 1 j = j + 1 if j == M: return i - M # 검색 성공 else: ret..

Algorithm 2021.02.19
1
더보기
프로필사진

방문자수Total

  • Today :
  • Yesterday :

My GitHub Contribution

Loading data ...
  • 분류 전체보기 (91)
    • Python (9)
    • Web (33)
      • HTML & CSS (2)
      • Django (14)
      • JavaScript (13)
      • Vue.js (4)
    • Algorithm (31)
    • DB (4)
      • SQL (2)
    • Git (4)
    • AWS (1)
    • ETC (9)

Tag

dfs, Python, JS 심화, 클린코드, Promise, DRF, JS 기초, LinearRegression, vue.js, 머신러닝, 핸즈온 머신러닝, django, 핸즈온, github, Django REST Framework, machine learning, 머신 러닝, 비트 연산, 1:N, 퀵 정렬,

최근글과 인기글

  • 최근글
  • 인기글

Copyright © Theo Oh Corp. All rights reserved.

  • GitHub

티스토리툴바