자료 구조와 알고리즘
병합 정렬에서 오름차순으로 정렬된 두 열 1, 4, 7, 9와 2, 3, 8, 10을, 맨 앞끼리 비교하여 작은 쪽을 출력하는 것을 반복하여 하나의 열로 합친다(병합한다). 한쪽 열이 비면 나머지는 비교하지 않고 그대로 출력한다. 비교 횟수는 몇 회인가?
- A4회
- B7회
- C8회
정답과 해설 보기
정답: B. 7회
1과 2, 4와 2, 4와 3, 4와 8, 7과 8, 9와 8, 9와 10을 비교하고, 여기서 첫 번째 열이 비므로 나머지 10은 비교하지 않고 출력합니다. 비교는 7회이며, 길이 m과 n인 열을 병합할 때의 최대 횟수 m + n − 1 = 7에 해당합니다. 병합은 정렬된 열을 앞에서부터 한 번씩 보기만 하므로 O(m + n)으로 끝나며, 이를 log₂ n단 반복하므로 병합 정렬 전체는 O(n log n)이 됩니다.