2. Divide & Conquer Algorithm (3) Quick Sort


Sanjoy Dasgupta가 저술한 책인 Algorithms과 이기창님의 블로그, Heee님의 블로그를 참고하였다.


1. Quick Sort(퀵 정렬)

리스트의 pivot을 선택한 뒤, pivot보다 작은 값과 큰 값으로 리스트를 둘로 분할하는 과정을 반복해 정렬하는 방법

Quick Sort(퀵 정렬)를 그림으로 쉽게 나타내면 다음과 같다.(그림출처)

퀵 소트도 머지 소트처럼 분할(Divide) - 정복(Conquer) - 결합(Combine)의 순으로 정렬이 이루어진다.

  1. 리스트에서 하나의 요소(pivot. 피벗)를 선택한다.

  2. pivot보다 작은 값을 pivot 앞으로, pivot보다 큰 값을 pivot 앞으로 오도록 하여 리스트를 둘로 분할한다.

  3. 분할된 리스트를 기준으로 1~2를 반복한다.(순환 호출)

  4. 그럼 최종적으로 이쁘게 정렬된 하나의 데이터가 완성된다.


2. Quick Sort(퀵 정렬)의 특징


3. Quick Sort(퀵 정렬)의 장단점


4. Quick Sort(퀵 정렬)의 시간복잡도