자료 구조와 알고리즘

배열 5, 3, 8, 1, 4를 버블 정렬로 오름차순 정렬한다. 앞에서부터 이웃한 원소끼리 비교하여 왼쪽이 더 크면 교환하는 조작을 끝까지 1회 수행한(1패스) 후의 배열은?

  1. A1, 3, 8, 5, 4
  2. B3, 5, 1, 4, 8
  3. C1, 3, 4, 5, 8
정답과 해설 보기

정답: B. 3, 5, 1, 4, 8

5와 3을 교환하여 3, 5, 8, 1, 4, 5와 8은 그대로, 8과 1을 교환하여 3, 5, 1, 8, 4, 8과 4를 교환하여 3, 5, 1, 4, 8이 됩니다. 1패스로 최댓값 8이 맨 끝까지 옮겨져 위치가 확정되고, 다음 패스에서는 나머지 4개를 같은 방식으로 정렬합니다. 1, 3, 8, 5, 4는 최솟값을 찾아 맨 앞과 교환하는 선택 정렬의 1패스 후 배열이고, 1, 3, 4, 5, 8은 정렬을 모두 마친 결과입니다.

이 분야 연습하기 분야로 돌아가기

자료 구조와 알고리즘의 다른 문제

  1. 배열 29, 10, 14, 37, 13을 선택 정렬(정렬되지 않은 부분에서 최솟값을 찾아, 정렬되지 않은 부분의 맨 앞과 교환한다)로 오름차순 정렬한다. 이 조작을 2회 수행한 후의 배열은?
  2. 원소 수 10인 배열을 삽입 정렬로 오름차순 정렬한다. 두 번째 이후의 원소를 차례로 꺼내어, 왼쪽 이웃부터 차례로 비교하며 꺼낸 값 이하인 원소가 발견되거나 맨 앞에 도달할 때까지 비교한다. 처음부터 오름차순으로 늘어서 있는 경우와 내림차순으로 늘어서 있는 경우의 비교 횟수의 조합은?
  3. 최악의 경우에도 시간 복잡도가 O(n log n)이고, 작업용 배열 등의 추가 기억 영역을 거의 사용하지 않고 정렬할 수 있는 정렬 방식은?
  4. (이름, 점수) 데이터 (A, 80), (B, 70), (C, 80), (D, 70)이 이 순서로 늘어서 있다. 점수의 오름차순으로 안정 정렬했을 때 이름의 순서는?
  5. 퀵 정렬의 시간 복잡도가 O(n²)이 되는 전형적인 경우는?