다음 C 코드에서 heapify(a, 7)을 수행한 후 배열 a[]의 내용은? (단, 모든 배열 원소값은 양의 정수로 한정하고, -1은 연산 대상이 아니며, 0은 삭제된 값을 나타낸다)
int a[8] = {-1, 1, 2, 3, 6, 4, 7, 5};
int heapify(int *a, int n) {
int item = a[1], temp = a[n];
int i = 1, j = 2;
a[n] = 0, n = n-1;
while ( j <= n ) {
if ( j < n && a[j] > a[j + 1] ) j++;
if ( temp < a[j] ) break;
else {
a[i] = a[j];
i = j;
j = j*2;
}
}
a[i] = temp;
return item;
}- ①01234567-12346570
- ②01234567-12436570
- ③01234567-12345670
- ④01234567-12435670
선지를 골라 바로 채점해 보세요.
정답 ②
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)