본 문서는 다음 게시물에 많은 내용을 참고한다. 본 게시물은 피벗 sort를 이해하는데 참고하기에 좋다.

[알고리즘] 퀵 정렬 - Quick Sort (Python, Java)

추가 참고 자료

[Python] Quick sort. 파이썬에서 간단히 퀵 정렬 구현

퀵소트에 대한 자료를읽고 퀵 소트가 어떻게 동작하는지 잘 설명된 영상입니다.

https://www.youtube.com/watch?v=cWH49IKDIiI

퀵 정렬

퀵 정렬 과정

  1. 리스트 안에 있는 한 요소를 선택한다. 이렇게 고른 원소를 피벗(pivot)이라고 한다.
  2. 피벗을 기준으로 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로 옮겨지고 피벗보다. 큰 요소들은 모두 피벗의 오른쪽으로 옮겨진다.
  3. 피벗을 제외한 왼쪽 리스트와 오른쪽 리스트를 다시 정렬한다. 분활된 리스트에 대하여 순환 호출을 이용하여 정렬을 반복한다.
  4. 부분 리스트에서 다시 피벗을 정하고 피벗을 기준으로 2개의 부분 리스트로 나누는 과정을 반복한다.
  5. 부분 리스트들이 더 이상 분활이 불가능할 때까지 반복한다. 리스트의 크기가 0이나 1이 될 때까지 반복한다.

퀵 정렬 알고리즘의 구체적인 개념