이진 탐색
데이터가 정렬된 상태에서 절반씩 반으로 나눠 분할 정복 기법으로 특정한 값을 찾아내는 알고리즘
동작 과정
- 정렬된 배열의 중간 인덱스 지정 ( 그 지정 값을 pivot 이라 부름 )
- 찾으려 하는 값과 동일하면 종료하고, 아니면 3단계로 이동
- 찾으려는 값이 중간 인덱스의 값보다 큰지, 작은지 확인
- pivot 보다 작은 경우 반으로 나눈 왼쪽 배열, pivot보다 큰 경우 반으로 나눈 오른쪽 배열을 선택
- 선택한 배열에서 다시 1단계부터 반복
이진 탐색을 사용 하는 경우
- 정렬된 배열에서 요솟값을 더 효율적으로 검색할 때 사용
- 데이터의 양이 많으면 많을수록 효율이 높아서 정렬된 데이터의 양이 많을 때 사용
* 단, 항상 효율이 좋은 것은 아닙니다.
-> 데이터의 양이 적고, 앞쪽에 위치한 데이터를 탐색할 때는 선형 탐색이 더 빠릅니다.
이진 탐색의 한계
- 정렬된 배열에서만 가능합니다.
- 규모가 작은 배열이라도 정렬되어 있지 않다면 이진 탐색을 사용해도 효율이 낮습니다.
이진 탐색 사용 사례
- 사전 검색
- 도서관 도서 검색
- 대규모 시스템에 대한 리소스 사항 파악
- 반도체 기업들에서 디지털/아날로그 레벨 측정하는 경우
BST 와 차이점
BST는 Tree는 하나의 노드가 두개의 하위 트리를 가지는 이진트리의 자료구조를 나타냅니ㅏㄷ
'알고리즘' 카테고리의 다른 글
문자열에서 숫자 추출 알고리즘 (0) | 2022.08.01 |
---|---|
동전 교환 알고리즘 (0) | 2022.07.30 |
Brute Force Algorithm과 시뮬레이션 (0) | 2022.07.28 |
Greedy Algorithm (0) | 2022.07.28 |
바빌로니아법으로 제곱근 값 구하기 (0) | 2022.07.28 |