정렬의 종류
- 교환(Exchange) : 버블(Bubble), 퀵(Quick) 정렬
- 삽입(Insertion) : 삽입(Intsertion), 셀(Shell) 정렬
- 병합(Merging) : 2-way 병합, n-way 병합
- 분배(Distribution) : 기수(Radix) 정렬
- 선택(Selection) : 선택(Selection), 힙(Heap) 정렬
선택정렬(Selection Sort)
전체 자료 중에서 해당 위치에 맞는 자료를 선택하여 위치를 교환(Exchange)하는 정렬 방식이다.
- STEP.1
- STEP.2
- STEP.3
- STEP.4
버블정렬(Bubble Sort)
전체 자료들들 대상으로 인접한 두 개의 자료값을 비교하여 교환(Exchange)하는 정렬 방식이다.
- STEP.2
- STEP.2
- 특성 : 평균 시간복잡도는 O(n^2)이며 최선의 경우(정렬된 경우 자료의 이동 연산이 0회 발생) O(0)이다. 자료의 정렬 상태에 따라 이동 연산의 차이가 있고 정렬의 안정성이 유지된다.
삽입정렬(Insertion Sort)
정렬된 부분 집합에 정렬할 자료의 위치를 찾아 삽입(Insertion)하는 정렬 방식이다.
- STEP.1
- STEP.2
- 특성 : 자료의 정렬 상태에 따라 시간복잡도가 매우 크게 차이난다. 정렬이 되어있다면 삽입위치를 찾을 때 1번만 비교하고 이동연산이 없다. 따라서 최선의 경우 O(n)의 시간복잡도를 갖는다. 평균 시간복잡도는 O(n^2)이며 정렬의 안정성은 유지된다.
소스코드
- 정렬의 안정성 : 동일한 키 값을 갖는 레코드들의 상대적인 우치가 정렬 후에도 바뀌지 않는 것을 말한다. [본문으로]
'Algorithm > Data Structure' 카테고리의 다른 글
[트리] Binary Search Tree (0) | 2015.01.18 |
---|