μ ν μ λ ¬(Selection Sort)
μ ν μ λ ¬(Selection Sort)μ νΉμ§
- μ ν μ λ ¬μ λ°°μ΄μ μννλ©΄μ κ° λ¨κ³μμ λ°°μ΄μ λλ¨Έμ§ λΆλΆ μ€μμ μ΅μκ°μ μ°Ύμ μ΅μκ°μ ν΄λΉ λ¨κ³μ μμμ μ μμΉν μμμ κ΅ννλ€. μ΄ κ³Όμ μ λ°λ³΅νμ¬ μ λ ¬νλ€.
- μ μ리 μ λ ¬(In-place sorting): μ ν μ λ ¬μ μΆκ°μ μΈ λ°°μ΄μ νμλ‘ νμ§ μμΌλ©°, λ°°μ΄ λ΄μμ μμλ€μ μμΉλ₯Ό κ΅ννμ¬ μ λ ¬νλ€.
- λΆμμ μ λ ¬(Unstable sort): μ ν μ λ ¬μ λμΌν κ°μ κ°μ§ μμμ μλμ μμκ° μ λ ¬ κ³Όμ μμ λ°λ μ μλ€. λμΌν μμκ° μ΄κΈ° λ°°μ΄μμ κ°μ§ μμλ₯Ό 보쑴νμ§ μλλ€.
- μλ₯Ό λ€μ΄,
[4, 6, 3, 4, 2, 8]
λ°°μ΄μ μ€λ³΅λ κ°μ΄ μμ λ, μ λ ¬ κ³Όμ μμ μ΄ λ4
μ€ μ΄λ νλκ° λ€λ₯Έ μμΉλ‘ μ΄λν λ, κ·Έλ€ μ¬μ΄μ μλ μμκ° λ°λ μ μλ€. μ¦, μ²μ λ°°μ΄μμ μμ μλ4
κ° μ λ ¬ νμλ λ€μ μλ4
λ€λ‘ μ΄λν μ μμ΄, λ4
μ μλμ μΈ μμκ° λ€λ°λκ²λλ€.
- μλ₯Ό λ€μ΄,
selection-sort Animation μ°Έκ³
Selection Sort - Sorting Algorithm Animations
Animation, code, analysis, and discussion of selection sort on 4 initial conditions.
www.toptal.com
Sorting (Bubble, Selection, Insertion, Merge, Quick, Counting, Radix) - VisuAlgo
VisuAlgo is generously offered at no cost to the global Computer Science community. If you appreciate VisuAlgo, we kindly request that you spread the word about its existence to fellow Computer Science students and instructors. You can share VisuAlgo throu
visualgo.net
μλ₯Ό λ€μ΄, μλμ κ°μ λ°°μ΄μ΄ μλ€.
μμ μλΆν° ν° μλ‘ λμ΄νλ€κ³ νμ λ,
첫 λ²μ§Έ μν
λ°°μ΄ μ 체 [4, 6, 3, 2, 8]
μμ μ΅μκ° 2λ₯Ό μ°Ύμ 첫λ²μ§Έ μμΉμ 4μ κ΅ννλ€.
2μ 첫 λ²μ§Έ μμΉμ 4λ₯Ό κ΅νν©λλ€.
κ²°κ³Ό: [2, 6, 3, 4, 8]
λ λ²μ§Έ μν
λ¨μ λ°°μ΄ [6, 3, 4, 8]
μμ μ΅μκ° 3μ μ°Ύμ νμ¬ μνμ μμ μμΉμΈ 6μ κ΅ννλ€.
κ²°κ³Ό: [2, 3, 6, 4, 8]
μΈ λ²μ§Έ μν
λ¨μ λ°°μ΄ [6, 4, 8]
μμ μ΅μκ° 4λ₯Ό μ°Ύμ νμ¬ μνμ μμ μμΉμΈ 6μ κ΅ννλ€.
4μ νμ¬ μνμ μμ μμΉμΈ 6μ κ΅νν©λλ€.
κ²°κ³Ό: [2, 3, 4, 6, 8]
λ€ λ²μ§Έ μν
λ¨μ λ°°μ΄ [6, 8]
μμ 6μ΄ μ΄λ―Έ μ΅μκ°μ΄λ―λ‘ κ΅ν μμ΄ μ μ§νλ€.
κ²°κ³Ό: [2, 3, 4, 6, 8]
Big-O
- μκ° λ³΅μ‘λ: O(n²) (best case : O(n²) (μ΄λ―Έ μ λ ¬μ΄ λμ΄ μλ κ²½μ°))
- Best: O(n²)
- Averrage: O(n²)
- Worst: O(n²)
- κ³΅κ° λ³΅μ‘λ: O(1)
μ₯μ
- μ μ리 μ λ ¬(In-place sorting): μΆκ°μ μΈ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νμ§ μκ³ , μ£Όμ΄μ§ 곡κ°λ§ μ΄μ©ν΄μ μ λ ¬νλ€.(κ³΅κ° λ³΅μ‘λ: O(1)) λ©λͺ¨λ¦¬ 곡κ°μ μ μ½ν μ μλ€.
- μ ν μ λ ¬μ κ΅ν νμκ° λΉκ΅μ μ μ΄, λ°μ΄ν° μ΄λμ΄ λΉμ©μ΄ λ§μ΄ λλ μν©μμ μ 리ν μ μλ€.
λ¨μ
- λ°μ΄ν° μμ΄ λ§μμ§μλ‘ μ±λ₯μ΄ μ’μ§ μλ€. λμ©λ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λλ λΆμ ν©νλ€.
- λΆμμ μ λ ¬: λμΌν κ°μ κ°μ§ μμμ μλμ μμκ° μ λ ¬ κ³Όμ μμ λ°λ μ μλ€.
- μ΅μ , νκ· , μ΅μ μ κ²½μ° λͺ¨λ O(n²) μκ° λ³΅μ‘λλ₯Ό κ°μ§λ€.
Javascript Algorithm
μλ μμ€λ μ ν μ λ ¬μ μκ³ λ¦¬μ¦ κ΅¬νν μμ€μ΄λ€.
function selectionSort(arr) {
for(let i = 0; i < arr.length; i++) {
let index = i;
for(let j = i + 1; j < arr.length; j++) {
if(arr[j] < arr[index]) {
index = [j]
}
}
let temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
return arr;
}
selectionSort([1, 5, 3, 2, 6]);