본문 바로가기

Algorithm/정렬과 탐색

퀵 정렬 (Quick Sort)

퀵 정렬 (Quick Sort)

 : 기준 데이터 (pivot)을 설정하고, 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 정렬 방법

 : 일반적으로 첫 번째 데이터를 pivot으로 설정함

 : 일반적인 상황에서 가장 많이 사용되는 정렬 알고리즘 중 하나

 : 대부분의 프로그래밍 언어의 정렬 라이브러리의 근간이 되는 알고리즘

   -> (일반적으로 표준 정렬 라이브러리 제공 시, 최악의 경우에도 시간복잡도 nlog₂n을 보장할 수 있는 형태로 구현됨)

 : 재귀적으로 수행되며, 정렬이 수행될 때마다 정렬 범위가 점점 좁아짐

 : 이상적인 경우 분할이 절반에 가깝게 일어남 -> 빠른 속도

 : pivot 값 설정에 따라 분할이 한 쪽 방향으로 편향된 분할을 가지는 경우, 최악의 시간 복잡도 = n^2

 

퀵 정렬의 과정

1. 배열의 원소들 중, 하나의 값을 pivot값으로 정한다.

2. pivot값을 기준으로, pivot 앞에는 pivot보다 작은 값이 오고 pivot 뒤에는 pivot보다 큰 값들이 오도록 배열을 나눔

3. 나눠진 두 배열에 대하여 재귀적으로 1~2의 과정 반복

'Algorithm > 정렬과 탐색' 카테고리의 다른 글

버블 정렬 (Bubble Sort)  (0) 2021.12.01
정렬 (Sort)  (0) 2021.12.01
계수 정렬 (Counting Sort)  (0) 2021.11.29
삽입정렬 (insertion sort)  (0) 2021.11.26
선택 정렬 (Selection Sort)  (0) 2021.11.26