퀵소트의 Hoare 분할 문제


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 1.0s
storage메모리 제한 : 256M
edit_square출제자:
 
답안 제출

아래는 퀵 소트를 제안한 C. A. R. Hoare가 제시한 분할 알고리즘이다.

HOARE_PARTITION을 구현하시오.

HOARE-PARTITION(A, p, r)
1   x = A[p]
2   i = p - 1
3   j = r + 1
4   while TRUE
5       repeat
6           j = j - 1
7       until A[j] ≤ x
8       repeat
9           i = i + 1
10      until A[i] ≥ x
11      if i < j
12          exchange A[i] with A[j]
13      else return j

입력

  • 첫 행은 배열이다.
  • 둘째 행은 시작 인덱스(p)와 끝 인덱스(r)이다.

출력

  • 입력 배열에 Hoare_partition을 적용한 후의 배열이다.

제한

  • 1 ≤ n ≤ 10,000,000
  • 0 ≤ p ≤ r ≤ n-1
  • n은 배열에 담긴 요소의 개수이다.

예제 입력 1

9 21 2 18 7 1 3 5 6 4 10 12
5 11

예제 출력 1

9 21 2 18 7 1 3 5 6 4 10 12

예제 입력 2

9 21 2 18 7 1 3 5 6 4 10 12
2 9

예제 출력 2

9 21 1 18 7 2 3 5 6 4 10 12

댓글

현재 작성된 댓글이 없습니다.