기타
완전탐색 이분탐색
작지
2021. 10. 17. 03:55
탐색이란?
- 많은 데이터 속에서 원하는 데이터를 찾는 것
- 웹에서 특정 문자를 가진 웹 문서를 찾거나 신용카드나 버스카드 역시 검색 알고리즘을 사용
탐색 종류
- 완전탐색
- 완전탐색이란
- 브루트 포스 라고 불리며 컴퓨터의 빠른 계산 성능을 활용하며 가능한 모든 경우의 수를 탐색함.
- 효율성은 매우 나쁨. O(경우의 수) 시간복잡도
- 반복문
- EX) 카드 10개중 특정 값을 찾기 위해서 카드의 1부터 하나씩 찾기
-
for i in range(10): if card[i] == 8: print(i) exit() print("not found")
- 재귀함수
-
def solution(trump, loc): if cards[loc] == 8: return loc else: return solution(trump, loc+1)
- 동적 계획법
- 백트래킹
- 탐욕법
-
- 완전탐색이란
- 이분탐색
- ex) https://www.acmicpc.net/problem/10816
- 오름차순으로 정렬된 리스트에서 특정 값의 위치를 찾는 알고리즘.
- 중간의 값을 선택하여 찾고자 하는 값과의 크고 작음을 비교하는 것
- 깊이우선탐색
- 너비우선탐색
- 문자열탐색
- KMP
- BM