다음 파이썬 코드로 작성된 partition() 함수를 이용하여, 주어진 배열을 퀵 정렬(quick sort)로 오름차순 정렬하고자 한다. 정렬 과정에서 단계별 정렬 순서로 나타날 수 없는 것은? (단, 피벗(pivot)은 정렬하고자 하는 대상의 마지막 원소로 선택한다)
# 정렬하고자 하는 대상인 A[first]…A[last]를 # 피벗(A[last]) 기준으로 분할하는 함수 def partition(A, first, last): p = A[last] low = first high = last while low < high: while p > A[low] and low < high: low += 1 while p <= A[high] and low < high: high -= 1 if low < high: A[low], A[high] = A[high], A[low] A[low], A[last] = A[last], A[low] return low
배열: 7 3 2 19 13 5 11 17
정답 2번
이 partition의 실제 단계에서는 2,3,5,11,7,13,17,19가 만들어지지 않는다. 피벗 7을 배치할 때 11과 7의 위치 관계가 이 배열처럼 남지 않는다.
콘텐츠 정보
- 자료 유형
- 사용자 제공 복원 자료
- 검수 상태
- 문항·보기·해설 편집 확인
- 해설 작성·검수
- 정처LAB 편집팀
- 최종 검수
- 2026-07-26