본문 바로가기
코딩테스트(알고리즘)/알고리즘 구현

[알고리즘 구현] 이진탐색 binarySearch (Javascript)

by Cafe Mocha 2022. 6. 25.

이진 탐색를 공부하고 구현

 

Javascript

let arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8, 1];
let len = arr.length;

function binarySearch(arr, target, start, end) {
  arr = arr.sort((a, b) => a - b);
  while (start <= end) {
    //중간 지점
    let mid = parseInt((start + end) / 2);
    // 찾은 경우 중간 지점 인덱스 반환
    if (arr[mid] === target) return mid;
    //찾는 값이 중간점의 값보다 작으면 왼쪽 확인
    else if (arr[mid] > target) end = mid - 1;
    //찾는 값이 중간점의 값보다 크면 오른쪽확인 확인
    else start = mid + 1;
    console.log(mid);
  }
  return -1;
}

let idx = binarySearch(arr, 9, 0, len - 1);

if (idx === -1) console.log("failed");
else console.log(arr[idx]);