개념공부/알고리즘

이진 검색 알고리즘 (Binary Search Algorithm)

Zach Choi 2023. 1. 26. 22:09
728x90
반응형

이진 검색 알고리즘 (Binary Search Algorithm)

  • 오름차순 (혹은 내림차순)으로 정렬된 배열에서 특정 값의 위치를 찾는 알고리즘
  • 시작과 마지막 범위 내에서 중간의 값을 임의로 선택하여 찾고자 하는 값과 비교
  • 중간 값이 찾는 값 대비 작다면, 시작 범위를 중간 값으로 설정
  • 중간 값이 찾는 값 대비 크다면, 마지막 범위를 중간 값으로 설정

장점

  • 특정 값을 찾기 위해 배열의 모든 인덱스를 모두 탐색하는 것 대비, 탐색 범위를 절반씩 줄여나가기 때문에 속도가 빠르다.

단점

  • 배열이 정렬되어 있어야 한다.
  • 정렬을 위한 연산이 소요 된다.

적용 문제 예시

  • 배열 내에서 Target 값과 가까운 3개의 원소를 찾는 문제
    • 모든 원소를 탐색하면 O(n^3)의 Time Complexity인데, 이진 탐색 알고리즘을 사용하면 O(n^2)으로 줄일 수 있다.
    • ex) Leet Code 16. 3Sum Closest 
728x90
반응형