Selection Sort
Selection Sort - Explanation
Problem Summary
Implement selection sort to sort an array in ascending order.
Go to Problem →Detailed Explanation
이 문제는 **선택 정렬(Selection Sort)** 알고리즘을 구현하는 방법을 학습합니다. ## 핵심 개념: 선택 정렬 매 반복에서 최소값을 찾아 맨 앞으로 이동시킵니다. ### 알고리즘 1. 배열에서 최소값을 찾습니다 2. 최소값을 현재 위치와 교환합니다 3. 다음 위치에서 반복합니다 ### 코드 분석 ```javascript for (let i = 0; i < result.length; i++) { let minIdx = i; for (let j = i + 1; j < result.length; j++) { if (result[j] < result[minIdx]) minIdx = j; } [result[i], result[minIdx]] = [result[minIdx], result[i]]; } ``` ### 시각화 ``` [64, 25, 12, 22, 11] [11, 25, 12, 22, 64] // 11 선택 [11, 12, 25, 22, 64] // 12 선택 [11, 12, 22, 25, 64] // 22 선택 [11, 12, 22, 25, 64] // 완료 ``` ### 특징 - 교환 횟수가 적음 (O(n)) - 불안정 정렬 (같은 값의 순서가 바뀔 수 있음) - 구현이 단순함
Solution Code
function selectionSort(arr) {
const result = [...arr];
for (let i = 0; i < result.length; i++) {
let minIdx = i;
for (let j = i + 1; j < result.length; j++) {
if (result[j] < result[minIdx]) minIdx = j;
}
[result[i], result[minIdx]] = [result[minIdx], result[i]];
}
return result;
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(n^2)
Space Complexity
O(1)
Uses almost no additional memory