[7급 국가직 자료구조론 2019년 19번]

주어진 정수 배열 {26, 13, 77, 61, 35, 11, 8, 48, 15, 19}에 대한 합병 정렬(merge sort)의 순환 알고리즘(recursive algorithm)을 다음과 같이 구현하였다. 이 프로그램의 수행 과정에서 형성되는 배열의 순서로 옳지 않은 것은?
#include <stdio.h>
#define MAX 10
void merge( int list[], int temp[], int left, 		         int middle, int right)
{
    int i=left, j=middle+1, k=left, t;
    for( ; i <= middle && j <= right ;  ) {
          if( list[i] <= list[j] )
		temp[k] = list[i++];
          else
		temp[k] = list[j++];
          k += 1;
     }
     if( i > middle ) {
         for( t = j ; t <= right ;)
		temp[k++] = list[t++];
     } else {
         for( t = i ; t <= middle ;)
		temp[k++] = list[t++];
     }
     for( t = left ; t <= right ; t++ )
          list[t] = temp[t];
}

void mergeSort( int list[], int temp[], int left, 		       int right)
{
     int middle = 0;
     if( left < right ) {
          middle = (left+right)/2;
          mergeSort(list, temp, left, middle);
          mergeSort(list, temp, middle+1, right);

          merge(list, temp, left, middle, right);
     }
}

int main(){
     int source[10]={26, 13, 77, 61, 35, 11, 8, 			   48, 15, 19}; 
     int temp[10] = {0x0,};

     mergeSort(source, temp, 0, 9);
}
자료구조론
  1. ①13, 26, 35, 61, 77, 11, 8, 48, 15, 19
  2. ②13, 26, 77, 61, 35, 11, 8, 48, 15, 19
  3. ③13, 26, 35, 61, 77, 8, 11, 15, 19, 48
  4. ④13, 26, 35, 61, 77, 8, 11, 15, 48, 19

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

정답 ④

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

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

오류 신고