[C++] 이진탐색 Binary Search

chxxrin·2024년 7월 30일
0

C++

목록 보기
21/22
start=시작값
end=끝값
mid = (start+end)/2

만약 target값이 A[start] 보다 크면 end = mid-1,
tartget값이 A[end] 보다 작으면 start = mid + 1

A[mid] > target 이면 end=mid-1
A[mid] < target 이면 start=mid+1
A[mid] == target 이면 답 찾음!

근데, c++에는 stl 내장함수로 binary_search(start, end, target) 함수가 있기 때문에 매우매우 편리하게 사용할 수 있다.

  • 첫 번째, 두 번째 인자는 내가 어디에서 찾고 싶은지 (배열이든 벡터든) 그 자료구조의 시작 주소(start)와 끝나는 주소(end)를 넣어주면 된다.
  • 세 번째 인자는 그 곳에 있는지 없는지 궁금한 내가 찾고 싶은 대상(target)이다. 반환 타입은 bool 타입으로, 있으면 1(true), 없으면 0(false)를 반환한다.

다만, 이진탐색이라는 것은 데이터가 정렬되어 있다는 전제하에 가능하다.
이 때, 정렬을 하려면 sort() 함수를 이용하면 된다.

참고 : https://breakcoding.tistory.com/188

0개의 댓글

관련 채용 정보