다음은 정렬된 정수 배열에 대한 이진 탐색(binary search)을 구현한 C 코드이다. (가) ~ (다)에 들어갈 내용을 바르게 연결한 것은?
int BSearch(int data[], int size, int target) {
int mid, left = 0, right = size - 1;
while(left <= right) {
mid = (가);
if(target == data[mid]) return mid;
else if(target > data[mid]) left = (나);
else right = (다);
}
return -1;
} (가) (나) (다)
- ①(left+right) // 2 mid-1 mid+1
- ②right-(left-right) // 2 mid left
- ③(left+right) / 2 mid+1 mid-1
- ④left+(right-left) / 2 right mid
선지를 골라 바로 채점해 보세요.
정답 ③
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)