[C++] 이분탐색 (STL) binary_search(v.begin(), v.end(), 찾을 값);

넘칠 연·2023년 7월 22일

C++

목록 보기
3/3

  • 이진 탐색(이분 탐색) 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.

  • 이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다.

  • 변수 3개(start, end, mid)를 사용하여 탐색한다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 것이 이진 탐색의 과정이다.

0. 헤더파일

#include <algorithm>

1. 예시

vector<int> v; //정렬된 벡터여야함
...
binary_search(v.begin(), v.end(), 찾을 값); //v에 있다면 true, 없다면 false를 반환

2. 추천 문제

BOJ 1920 (S4) 수 찾기

//https://www.acmicpc.net/problem/1920

BOJ 10815 (S5) 숫자 카드

//https://www.acmicpc.net/problem/10815

3. 출처

//[알고리즘] 이분 탐색 / 이진 탐색 (Binary Search)
//https://velog.io/@kimdukbae/%EC%9D%B4%EB%B6%84-%ED%83%90%EC%83%89-%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-Binary-Search

//[C++/STL] binary search (이분 탐색)
//https://royhelen.tistory.com/36
profile
멋지게 될 기회를 놓치지 말라 - 티나 실리그

2개의 댓글

comment-user-thumbnail
2023년 7월 22일

공감하며 읽었습니다. 좋은 글 감사드립니다.

1개의 답글