[7급 국가직 자료구조론 2022년 23번]

다음 C 코드는 쉘 정렬을 구현한 것이다. 코드의 출력 결과는?
#include <stdio.h>
void sort(int arr[], int n) {   
   int count = 1;
   int i, j, k, h, val;
   for (h = n/2; h > 0; h /= 2) {
      for (i = 0; i < h; i++)  {
         for (j = i+h; j < n; j += h) {
            val = arr[j];
            k = j;
            while (k > h-1 && arr[k-h] > val) {
               arr[k] = arr[k-h];
               k -= h;
            }
            arr[k] = val;
        
            if (count == 5)
               for (int t = 0; t < 6; t++)
                   printf("%d ", arr[t]);
            count++;
         }
      }
   }
}

int main() {
    int a[6] = {5, 9, 2, 3, 6, 7};
    sort(a, 6);
}
자료구조론
  1. ①2 3 5 6 9 7
  2. ②2 3 6 5 9 7
  3. ③3 6 2 5 9 7
  4. ④3 9 2 5 6 7

선지를 골라 바로 채점해 보세요.

정답 ②

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고