Selection Sort (선택 정렬)
알고리즘 복습하기 정렬편 1탄2025-01-24
#Algorithm#Sort
알고리즘 포스팅 하며 복습하기 (정렬편) 📊
선택 정렬이란?
선택 정렬은 배열 중 가장 작은 값을 찾아 맨 앞에 있는 값과 교환하고, 그 다음 작은 값을 찾아 두 번째 위치의 값과 교환하는 방식으로 정렬하는 알고리즘입니다.

코드
const array = [1, 4, 2, 3, 5];
const selectionSort = (arr) => {
const length = arr.length;
for (let i = 0; i < length - 1; i++) {
// 가장 작은 수를 가진 인덱스 변수 시작은 0
let currentMinIndex = i;
// currentMinIndex 다음 인덱스부터 배열의 "끝까지" 탐색한다
for (let j = i + 1; j < length; j++) {
if (arr[j] < arr[currentMinIndex]) {
currentMinIndex = j;
}
}
// 가장 작은 수를 가진 인덱스가 처음 시작한 인덱스와 다르다면 교환
if (currentMinIndex !== i) {
[arr[i], arr[currentMinIndex]] = [arr[currentMinIndex], arr[i]];
}
}
return arr;
};
console.log(selectionSort(array)); // [1, 2, 3, 4, 5]
시간 복잡도
- 가장 작은 값을 찾아야 하기에 매 루프마다 배열의 끝까지 탐색해야 합니다.
- 최악의 경우 배열의 끝까지 탐색해야 하기에 시간 복잡도는 **O(n^2)**입니다.
- Big O 표기법은 최악의 경우를 기준으로 표기