관리 메뉴

Rootable의 개발일기

이진 탐색(Binary Search) 본문

알고리즘

이진 탐색(Binary Search)

dev-rootable 2023. 10. 29. 11:19

데이터가 정렬돼 있는 상태에서 원하는 값을 찾아내는 알고리즘이다.

 

대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는다.

 

시간 복잡도 : O(logN)

 

구현 및 원리가 비교적 간단하므로 많은 코딩 테스트에서 부분 문제로 요구하는 영역이다.

 

📌 탐색 과정

 

  1. 현재 데이터셋의 중앙값을 선택
  2. 중앙값 > 타깃 데이터일 때 중앙값 기준으로 왼쪽 데이터셋을 선택
  3. 중앙값 < 타깃 데이터일 때 중앙값 기분으로 오른쪽 데이터셋을 선택
  4. 과정 1 ~ 3을 반복하다가 중앙값 == 타깃 데이터일 때 탐색을 종료

 

응용 문제로 특정 범위를 주고 정렬이 가능한 상태에서 O(logN) 내에서 탐색해야 할 때 사용할 수 있다.

 

 

Reference:

 

'알고리즘' 카테고리의 다른 글

냅색(Knapsack) 알고리즘  (0) 2023.11.17
메모이제이션과 타뷸레이션  (0) 2023.10.30
삽입 정렬(Insertion Sort)  (0) 2023.10.26
버블 정렬(Bubble Sort)  (1) 2023.10.26
선택 정렬(Selection Sort)  (0) 2023.10.26