Data+

6. Quick Sort

by Qerogram

오늘은 Quick Sort를 구현해보았다.


Quick Sort 알고리즘을 대충 설명한다.

1,4,2,5,7,3,6,8을 가지는 배열 arr가 있다고 가정하자.

여기서 가운데 값인 5를 기준을 잡는다.

이 때, 이 기준인 5를 pivot이라고 부른다.

그리고 왼쪽부터 pivot까지를 탐색하여

pivot보다 값이 큰가? 하고 물어본다.

1 < 5 는 pivot보다 값이 작기 때문에 내려놓는다.

4와 2 또한 마찬가지다.


그렇다면, 오른쪽으로 가서 하나씩 물어본다.

8은 pivot보다 큰가? 참이다.

이런식으로 하다가 3에서 걸리게된다.


3은 pivot보다 큰가? 에서 거짓이 나오게되고.

3과 pivot의 위치를 바꾸게 된다.


루프를 한번 돌게되면

1 4 2 3 7 5 6 8이 된다.

이걸 Recursion을 이용해 다 돌리게 되면 O(n * log n)의 처리 속도의 Quick Sort를 완성하게된다.

(최악의 경우 O(n^2)가 소모되긴 하지만).



'코딩 > C&C++' 카테고리의 다른 글

8. 함수 템플릿의 이해1  (0) 2017.04.13
7. Merge sort(합병정렬)  (0) 2017.04.10
5. void PTR  (0) 2017.04.09
4. 다형성  (0) 2017.04.09
3. 복사생성자를 통한 깊은 복사.  (0) 2017.04.08

블로그의 정보

Data+

Qerogram

활동하기