[ 07.10 ] 이진탐색트리 알고리즘

이숙영·2021년 7월 13일
0

알고리즘

목록 보기
4/17
post-thumbnail
  // arr[i] !== target -> -1
  // [1,2,3,4,5,[여기 딱 중간에 끊어서 반반탐색]6,7,8,9,10]
  // 끝까지 탐색되었는데도 target을 못찾으면 -1 이된다.
  let start = 0;
  let end = arr.length - 1; //9
  let mid;
  while(start <= end){
    mid = parseInt((start + end) / 2) //두개더해 2로나눈값의 정수처리한게 mid 5
    if(arr[mid] === target){
      return mid;
    }
    // mid 기준으로, 타겟보다 요소가 더 클때 탐색 -1씩 줄어서 종료하게만들긔
    if(arr[mid] > target){ 
      end = mid - 1; 
    }
    // mid 기준으로, 타겟보다 요소가 더작을때 탐색, 1씩 증가해서 종료하게 만들긔
    else{
      start = mid + 1;
    }
  }
  return -1;
profile
FrontEndDeveloper

0개의 댓글