μ ν μ λ ¬ (Selection Sort)
ν΅μ¬ μμ
β’
λ°°μ΄μ μννλ©° μ΅μκ°μ μ°Ύμ 맨 μλΆν° μ±μλκ°λ λ°©μ
β’
λ κ°μ μλΈ λ¦¬μ€νΈλ‘ λλμ΄ μ λ ¬ μ§ν
β’
μ μ리 μ λ ¬(in-place sorting) μκ³ λ¦¬μ¦
μκ° λ³΅μ‘λ
μ΅μ μ κ²½μ° | O(nΒ²) |
νκ· μ κ²½μ° | O(nΒ²) |
μ΅μ
μ κ²½μ° | O(nΒ²) |
μ£Όμ νΉμ§
β’
μ₯μ
β¦
ꡬνμ΄ κ°λ¨νκ³ μ΄ν΄νκΈ° μ¬μ
β¦
μΆκ° λ©λͺ¨λ¦¬ 곡κ°μ΄ κ±°μ νμνμ§ μμ
β¦
μμ μ μΈ μ λ ¬ λ°©μ
β’
λ¨μ
β¦
μκ° λ³΅μ‘λκ° O(nΒ²)μΌλ‘ λΉν¨μ¨μ
β¦
λ°μ΄ν° μμ΄ λ§μμλ‘ μ±λ₯ μ ν
μμ μ½λ
μ§μ ꡬν
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++) {
int minIdx = i;
// μ΅μκ° μ°ΎκΈ°
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
// μ΅μκ°μ νμ¬ μμΉμ κ΅ν
int temp = arr[minIdx];
arr[minIdx] = arr[i];
arr[i] = temp;
}
}
}
Java
볡μ¬