반응형
✅ 선택 정렬 (Selection Sort)
❕ 기본 개념
- 수열 중에서 최솟값을 검색한 후 왼쪽 끝 숫자와 교체하는 작업을 반복하며 정렬
- 최솟값을 찾을 때는 선형 탐색을 사용
- 숫자 비교 횟수는 (n - 1) + (n - 2) + ... + 1 ≈ n2 / 2, 숫자 교체는 각 라운드 당 최대 1회
- 따라서 선택 정렬 시간 복잡도는 O(n2)
❕ 작동 방식


✔ 구현 방법 (JS)
function selectionSort(inputArr) { let n = inputArr.length; for (let i = 0; i < n; i++) { // Finding the smallest number in the subarray let min = i; for (let j = i + 1; j < n; j++) { if (inputArr[j] < inputArr[min]) { min = j; } } if (min != i) { // Swapping the elements let tmp = inputArr[i]; inputArr[i] = inputArr[min]; inputArr[min] = tmp; } } return inputArr; }
참고자료
「알고리즘 도감」 中 2-3 선택 정렬
https://codepumpkin.com/selection-sort-algorithms/
https://stackabuse.com/selection-sort-in-javascript/
반응형
'Devlog > DS & Algorithms' 카테고리의 다른 글
[알고리즘] 퀵 정렬 (0) | 2022.08.05 |
---|---|
[알고리즘] 삽입 정렬 (0) | 2022.08.05 |
[알고리즘] BFS & DFS (0) | 2022.07.30 |
[알고리즘] 완전탐색기법 (0) | 2022.07.30 |
[자료구조] Heap (0) | 2022.07.22 |