모두CBT

다음 버블(bubble) 정렬 알고리즘 (가)에 대한 입력 배열이 (나… | [7급 국가직 알고리즘] 23년 1회차 기출문제 상세 페이지

1[7급 국가직 알고리즘] 23년 1회차
다음 버블(bubble) 정렬 알고리즘 (가)에 대한 입력 배열이 (나)일 때, 해당 알고리즘에서 데이터 교환(swap 함수 실행) 직후 (다) 배열 상태에서의 end와 cur의 값은?
(가) bubble_sort(arr[], arr_size) {
// arr 배열의 인덱스는 0 ~ arr_size-1
for end ← arr_size - 1 to 1
for cur ← 0 to end - 1
if (arr[cur] > arr[cur + 1])
swap(arr[cur], arr[cur + 1]);
}
(나) 6, 2, 3, 4, 0, 5, 1, 9, 8, 7
(다) 2, 3, 0, 4, 5, 1, 6, 8, 7, 9
end cur
1
8 / 2
2
8 / 4
3
7 / 2
4
7 / 4
해설

(다) 상태는 end = 8, cur = 2에서 교환이 일어난 직후다.

end = 9 회차: 6이 오른쪽으로 이동하며 2, 3, 4, 0, 5, 1과 차례로 교환되고, 9가 8, 7과 교환되어 2, 3, 4, 0, 5, 1, 6, 8, 7, 9가 된다.

end = 8 회차: cur = 0(2와 3), cur = 1(3과 4)은 교환이 없고, cur = 2에서 4 > 0이므로 교환해 2, 3, 0, 4, 5, 1, 6, 8, 7, 9, 즉 (다)가 된다.

  • end = 8, cur = 4는 같은 회차에서 5와 1을 교환하는 시점이라 (다)보다 더 진행된 상태다.
  • end = 7, cur = 2 시점에는 직전 회차에서 8과 7이 이미 교환되어 끝부분이 7, 8, 9이므로 (다)와 다르다.
  • end = 7, cur = 4 역시 끝부분이 7, 8, 9로 정리된 뒤라 (다)와 맞지 않는다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 알고리즘] 23년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 알고리즘 기출문제 암기장 전체 보기