개발하기좋은날

binarySearch 본문

Algorithm

binarySearch

devbi 2022. 6. 7. 11:37
반응형

오름 차순 정렬된 정수의 배열에서 target을 찾는 문제 

const binarySearch = function (arr, target) {
  
    var low = 0;
    var high = arr.length-1;
    var flag = true;
    var result = -1; //결과 
    
    while(flag == true)
    {
        var fv = Math.floor((low+high)/2); // 기준점 
        
        if(arr[fv] <= target && target <= arr[high]) // 피벗 기준 오른쪽에 있을떄  
            low = fv;        
        else if(arr[low] <= target && target <= arr[fv]) // 피벗 기준 왼쪽 
            high = fv;
        else
            flag = false;
        
        if((high-low) == 1)
        {
            result = target == arr[low] ? low : result;
            result = target == arr[high] ? high : result;
            flag = false;
        }
    }
    return result;
};

 

 

 

 

 

 

 

반응형

'Algorithm' 카테고리의 다른 글

BFS(Breadth-First Search) 알고리즘  (0) 2022.07.05
BFS를 이용한 primPassword 찾기  (0) 2022.07.05
largestProductOfThree  (0) 2022.06.02
treeDFS  (0) 2022.06.02
Bubble Sort  (0) 2022.05.25
Comments