다음 C 코드는 이진 탐색을 이용하여 정수 데이터를 탐색하는 함수이다. (가), (나)에 들어갈 내용을 바르게 연결한 것은? (단, key는 찾고자 하는 값, a[]는 오름차순으로 정렬된 정수 배열, n은 배열의 크기이다)
int search(int key, int a[], int n) {
int mid;
int left = 0;
int right = n-1;
while ((가)) {
mid = (right + left) / 2;
if (key == a[mid]) return mid;
if ((나)) right = mid - 1;
else left = mid + 1;
}
return -1;
} (가) (나)
- ①left < right key < a[mid]
- ②left < right key > a[mid]
- ③left <= right key < a[mid]
- ④left <= right key > a[mid]
선지를 골라 바로 채점해 보세요.
정답 ③
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)