본문 바로가기

Data Structure/Algorithm

Sort Algorithm - Quick

Quick

- Divide & Conquer Algorithm 중 하나

 

- pivot을 이용 - 위치에 따라 간격의 불균형이 발생할 수도 있다.

 

- Merge Sort와 속도가 비슷하고, Heap Sort보다 속도가 빠르다.


Java예시

*left = 부분 Array의 1st index

*pivot = 부분 Array의 중간값

*right = 부분 Array의 last index

partition() :

- left<=right가 될 때까지, left의 element값이 pivot보다 클 때까지 증가시키면서, right 의 element값이 pivot보다 작을 때까지 감소시키면서 찾는다.

 

- 위 조건을 만족하는 value를 찾으면, 두 elements를 swap한다.

(이 과정을 진행하다보면, 자연스럽게 오름차순으로 정렬된다.)

 

- 찾는과정이 다 끝나면, pivot의 위치인 left를 return한다.

quickSort() : return 받은 pivot을 기준으로 좌/우 부분집합으로 나누어 재귀호출을 진행

 

sortByQuickSort() : Quick Sort Algorithm실행

 

 

- main함수에서 실행한 결과


C예시

 

- 추가 예정

 

'Data Structure > Algorithm' 카테고리의 다른 글

Recursive Algorithm - Recursive Function  (1) 2024.04.07
Sort Algorithm - Heap  (0) 2024.04.01
Sort Algorithm - Merge  (0) 2024.03.30
Sort Algorithm - Shell  (0) 2024.03.29
Sort Algorithm - Insertion  (0) 2024.03.28