🤖
그림으로 배우는 알고리즘 제 5장 - 정렬과 검색 (7)
August 22, 2022
제 5장: 정렬과 검색(7)
60. 검색이란 여러 개의 데이터 안에서 원하는 데이터를 찾아내는 것
- 검색: 여러 개의 데이터 안에서 원하는 데이터를 찾아내는 알고리즘.
- 정렬만큼 빈번히 사용되는 중요 요소
- 예시
- 카드번호로 사용자 정보를 검색해 사용자가 쇼핑을 할 수 있는 지 여부를 판별
- 진찰권의 환자 ID로 전자 의료 기록을 찾아냄
- 키워드가 적힌 사이트들을 전세계 웹사이트 중에서 찾아내 목록을 표시
- 검색 알고리즘의 종류
- 순차 검색(리니어 서치)
- 이진 검색(바이너리 서치)
- 간단한 문자열 검색
- KMP 알고리즘을 사용한 문자열 검색
- BM 알고리즘을 사용한 문자열 검색
61. 처음부터 끝까지 샅샅이 데이터를 비교하는 순차 검색(리니어 서치)
- 순차 검색(리니어 서치: Linear search): 랜덤으로 나열된 데이터 열 안에서 원하는 데이터를 찾기 위해 원하는 데이터와 일치하는지 여부를 1번째 데이터부터 조사하는 방법
- N개의 데이터 중 원하는 데이터를 찾기까지 평균적으로 N/2 번 비교해야하기 때문에 많은 양의 데이터를 찾아내는 작업에 적합하지 않은 알고리즘
- 예시: 배열 DATA에 저장된 N개의 데이터에서 원하는 데이터 T를 찾아내는 순서
- 1단계: 배열 DATA의 요소들을 가리키기 위한 첨자 I를 0으로 초기화
- 2단계: I < N일 동안, 다음의 3단계 반복
- 3단계: DATA[I] = T 일때 반복처리 종료 / DATA[I] ≠ T 일때 I를 1 증가
- 4단계: I < N일 때 요소번호 I위치에서 원하는 데이터를 발견 / I = N일 경우 원하는 데이터가 발견되지 않음