다음은 이진 탐색을 수행하는 C 함수이다. 이 함수를 사용하여 0부터 20까지의 정수가 차례대로 저장되어 있는 배열 b에 대한 이진 탐색을 수행할 때, key 값과 a[middle] 값을 비교하는 횟수가 다른 것은? (단, 배열의 색인은 0부터 시작한다)
int binarySearch(int *a, int key, int low, int high)
{
int middle;
while (low <= high) {
middle = (low + high) / 2;
if (key == a[middle])
return middle;
else if (key > a[middle])
low = middle + 1;
else
high = middle - 1;
}
return -1;
}- ①binarySearch(b, 4, 1, 20)
- ②binarySearch(b, 7, 1, 20)
- ③binarySearch(b, 9, 1, 20)
- ④binarySearch(b, 14, 1, 20)
선지를 골라 바로 채점해 보세요.
정답 ②
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)