목록Python/Algorithm (2)
Real Late Starter
보이어-무어 알고리즘 - 오른쪽에서 왼쪽으로 비교, 대부분의 상용 소프트웨어에서 채택하고 있는 알고리즘입니다. - 패턴에 오른쪽 끝에 있는 문자가 불일치하고, 이 문자가 패턴 내에 존재하지 않는 경우, 이동거리는 패턴의 길이 만큼이 됩니다. - M은 전체 문자열이고 N이 찾으려는 문자열이라고 할 때.시간 복잡도는 일반적으로 O(n) 이하이고 최악의 경우에는 O(MN)가 됩니다. """ 코드 출처 : https://mungto.tistory.com/124 """ #문자열 검색하는 보이어 무어 알고리즘 def boyer_moore(pattern, text): #길이를 자주쓰므로 길이를 받아둔다. M = len(pattern) N = len(text) i = 0 #반복은 최대 긴텍스트 길이 - 작은텍스트 길이..
1. 검색 1) 순차검색 정렬되지 않은 자료의 검색과정 - 첫번째 원소부터 순서대로 검색대상과 키 값이 같은 원소가 있는지를 비교하여 찾음 - 키 값이 동일한 원소를 찾으면 그 원소의 인덱스를 반환 - 자료구조의 마지막에 갈 때 까지 검색 대상을 찾지 못하면 검색 실패 찾고자 하는 원소의 순서에 따른 비교횟수 결정 - 첫 번째 원소를 찾을 떄에는 1번 비교, 두 번째 원소를 찾을 때에는 2번 비교 - 정렬되지 않은 자료에서의 순차 검색의 평균 비교 횟수 (n+1)/2 - 시간 복잡도는 O(n) def sequentialSearch(a,n,key): i = 0 while i < n and a[i] != key: i += 1 if i < n: return i else: return -1 정렬된 자료의 검색과..