Home [Algorithm] 이진 탐색(Binary Search) 알고리즘 이해하기
Post
Cancel

[Algorithm] 이진 탐색(Binary Search) 알고리즘 이해하기


이진 탐색(Binary Search) 이란?

이진 탐색(Binary Search)은 정렬된 배열에서 특정 값을 효율적으로 찾는 알고리즘입니다. 이 알고리즘은 배열의 중간 값과 찾고자 하는 값을 비교하여 탐색 범위를 반으로 줄여나가며 값을 찾아나갑니다. 이진 탐색은 배열의 크기에 비례하지 않고 큰 데이터에서도 빠르게 원하는 값을 찾을 수 있습니다.

이진 탐색(Binary Search) 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function binarySearch(arr, targetValue) {
  let left = 0;
  let right = arr.length - 1;

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);

    if (arr[mid] === targetValue) {
      return mid; // 값이 중간 값과 일치하면 인덱스 반환
    } else if (arr[mid] < targetValue) {
      left = mid + 1; // 중간 값보다 크면 오른쪽 반 탐색
    } else {
      right = mid - 1; // 중간 값보다 작으면 왼쪽 반 탐색
    }
  }

  return -1; // 값을 찾지 못한 경우 -1 반환
}

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const targetValue = 7;

const index = binarySearch(array, targetValue);

마치며

혹시 잘못된 정보나 궁금하신 게 있다면 편하게 댓글 달아주세요.
지적이나 피드백은 언제나 환영입니다.

This post is licensed under CC BY 4.0 by the author.