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;
};
반응형