선택 정렬 Selection Sort
Intro
- 선택 정렬의 이해
선택 정렬 Selection Sort
선택 정렬(Selection Sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
1.주어진 리스트 중에 최소값을 찾는다.
2.그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
3.맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
n개의 주어진 리스트를 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다. 1
예제
선택 정렬의 시간복잡도
비교 횟수
-
두개의 for문 외부 루프 (n-1)번
-
내부 루프(최솟값 찾기) : n-1, n-2, …, 2, 1번
교환 횟수
-
외부 루프의 실행 횟수
-
한번 교환시 3번의 이동 3(n-1)
T(n)=(n-1) + (n-2) + … + 2 + 1 = n(n-1)/2 = O(n2)
선택 정렬의 특징
시간 복잡도 O(n2)인 정렬 알고리즘 중에서 선택 정렬은 버블 정렬보다 항상 우수하다
장점 : 자료 이동 횟수가 미리 결정된다. (메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다)
단점 : 안정성을 만족하지 않는다. 값이 같은 레코드가 있는 경우 상대적인 위치가 변경될 수 있다.
댓글남기기