정렬3) 퀵 정렬(Quick Sort)


* 퀵 정렬
- 일정한 기준(pivot)에 따라 큰 값과 작은 값으로 분류하는 정렬
- 재귀로 구현
- Partition(): 더 큰 값과 더 작은 값으로 분류하는 메소드
- QuickSort(): 파티션 함수를 반복하귀 위한 메소드
- 변수
    1) 기준 값(pivot value): 기준값 index 저장 변수
    2) 비교 값(store_index): 파티션 함수 내 분류를 위한 임시 저장 index
    3) 탐색 값(i): 기준 값과 비교하면서 탐색해 나가는 값








* 시간 복잡도


- 이상적으로 갈라지는 경우
    - 피봇 값으로 나누는 횟수 = log2n
    - 각 단계에서 연선 횟수 = n
    - 총 탐색 수 = nlong2n
    - O(NlogN)




- 최악의 경우
    - O(N^2)




댓글