선택 정렬 (selection sort) :
- 제자리 정렬 알고리즘 중 하나
- 입력 배열 외의 다른 추가 메모리 필요 없음
- 주어진 배열에서 최솟값 찾음
- 그 값을 맨 앞의 값과 교환함
- 맨 처음 위치를 제외한 배열 범위에서 1~2번 반복
즉 1,2 번이 하나의 사이클로 한번 할때 마다 배열 내의 가장 작은 원소를 맨 앞으로 땡겨오는 작업을 n번하여 정렬하는 방법이다.
장 : 자료의 이동 횟수가 예상 가능함
단 : 불안정함, 값이 같은 레코드가 있는 경우에 상대적 위치가 변경될 수 있음
시간복잡도
배열의 크기 n 이라 하였을 때
비교 횟수 : n-1, n-2, n-1, .... 2, 1 번
교환 횟수 : 한 번 교환할 떄( swap 함수) 3번 => 최대 3(n-1) 번
그러므로
Best (모두 정렬되어 있는 상태) : 교환 X 비교만 O => 오메가(n^2)
Worst (역순 정렬) : 교환, 비교 최대로 => O(n^2)
반응형
'미가공 필기(알고리즘)' 카테고리의 다른 글
210628 합병 정렬(merge sort) & 퀵 정렬(quick sort) (0) | 2021.06.28 |
---|---|
210628 버블 정렬 (bubble sort) & 삽입 정렬 (insertion sort) (0) | 2021.06.28 |
210625 시간복잡도와 공간복잡도 (0) | 2021.06.25 |
210624 그래프(Graph) (0) | 2021.06.24 |
210624 트리(Tree) (0) | 2021.06.24 |
댓글