토픽 6 / 82
선택 정렬 (Selection Sort)
선택 정렬 (Selection Sort)
매번 최소값(또는 최대값)을 찾아 정렬된 부분 끝에 배치하는 정렬 알고리즘
목적: 단순 정렬, 교환 횟수 최소화
특징: 단순, 불안정 정렬, 제자리 정렬, 교환 O(n)
동작: n-1번 패스 수행. 각 패스에서 미정렬 부분 전체를 순회하여 최소값의 위치를 찾고, 미정렬 부분의 첫 번째 요소와 교환. 정렬된 부분이 앞에서부터 1개씩 확장
- •예: [5,3,8,1] → 최소1: [1,3,8,5] → 최소3: [1,3,8,5] → 최소5: [1,3,5,8]
시간 복잡도: 최선·평균·최악 O(n²) - 항상 모든 요소 비교
공간 복잡도: O(1) - 제자리
교환 횟수: O(n) - 버블보다 적음
장점: 단순, 제자리, 교환 적음
단점: 느림(O(n²)), 불안정, 비적응적(정렬 여부 무관)
적용사례: 교육, 메모리 쓰기 비용 높을 때, 소규모 데이터
비교: 선택(교환적음/불안정) vs 삽입(안정/적응적) vs 버블(교환많음)
연관: 정렬, 버블 정렬, 삽입 정렬, O(n²)