• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

퀵정렬-1

22.11.22 18:07 작성 조회수 251

0

질문.png

김태원 강사님 좌측 파티션은 마무리를 했는데,

우측 파티션을 어떻게 퀵정렬을 해야 될지 몰라서 질문 드립니다.

질문의 요지는 텍스트라도 쳐서라도

중간과정을 보여주시면 감사하겠습니다.

유투브도 찾아보고 print()함수도 찍어보고 했는데,

결론만 나오지 과정이 나오지를 않습니다.

현재 좌측 파티션까지는 이해를 했습니다.

그리고 우측의 경우 중앙이라고 하기 에매한 게

우측은 값의 갯수가

홀수가 아니라 짝수로 4개네요

 즉 좌우대칭이 되지 않습니다.

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

Q(6, 9)가 호출될 때 우측은 6번인덱스부터는 [36, 60, 45, 67]이고 67이 pivot이 되어 파티션하면 그대로 이고 pos는 9가 됩니다. 호출은 Q(6, 8), Q(10, 9)가 호출되며 Q(10, 9)는 바로 종료됩니다. 67은 자기 자리를 찾은거니까 문제가 없겠지요. Q(6, 8)이 [36, 60, 45]를 정렬하기 위해 작동합니다. pivot는 45이고 파티션하면 [36, 45, 60]되고 pos는 7입니다. 여기서 호출이 Q(6, 6), Q(8, 8)이 되고 둘은 바로 종료됩니다.

그리고 최종적으로 [36, 45, 60, 67]이 되어 있습니다.