binary search algorithm

gongyoon·2022년 7월 12일
0

선형검색과 다르게 이진검색은 특정 조건에 정렬되어있어야 하지만 선형검색 보다 효율성이 높다.

다음과 같이 이진 검색을 작성해 보았다.

function binarySearch(arr, elem) {
    let start = 0;
    let end = arr.length - 1;
    let middle = Math.floor((start + end) / 2);
    while(arr[middle] !== elem && start <= end) {
        if(elem < arr[middle]){
            end = middle - 1;
        } else {
            start = middle + 1;
        }
        middle = Math.floor((start + end) / 2);
    }
    return arr[middle] === elem ? middle : -1; 
}

주의할 점으로는 while문의 start값이 end값을 넘어가는 경우 무한 루프에 빠지게 되므로
두번째 조건을 꼭 달아야 한다.

profile
공부하며 성장하는 사람이 되고 싶은 개발자.

0개의 댓글