h e 1 1 o !

문제 해결 패턴 / 분할과 정복 (이진탐색 배우며 추가 예정) 본문

a l g o r i t h m

문제 해결 패턴 / 분할과 정복 (이진탐색 배우며 추가 예정)

hee.hee 2022. 7. 10. 18:39

 

분할과 정복은 주로 배열이나 문자열 같은 큰 규모의 데이터셋을 처리한다. 

퀵 정렬, 병합 정렬, 이진 탐색 등이 분할 정복 알고리즘이다.

 

 

 

 

정렬된 arr에서 val의 인덱스 넘버를 찾아라(없으면 -1 리턴)

function binarySearch(arr, val) {
  let min = 0;
  let max = arr.length - 1;

  while (min <= max) {
    let mid = Math.floor((min + max) / 2);
    let currentEl = arr[mid];

    if (arr[mid] < val) {
      min = mid + 1;
    } else if (arr[mid] > val) {
      max = mid - 1;
    } else {
      return mid;
    }
  }
  return -1;
}