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




* 시간 복잡도


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

- 최악의 경우
- O(N^2)
댓글
댓글 쓰기