μ ν μ λ ¬μ΄λ 무μμΌκΉ?
μ ν μ λ ¬μ΄λ μ λ ¬μ΄ λμ§ μμ μ 체 λ°μ΄ν° μ€μμ ν΄λΉ μμΉμ λ§λ λ°μ΄ν°λ₯Ό μ ννμ¬ μμΉλ₯Ό κ΅ννλ μ μ리 μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. μλμ κ°μ μ μ°¨λ‘ μ§νλ©λλ€.
- 1) μ£Όμ΄μ§ λ°μ΄ν° 리μ€νΈ μ€μμ μ μΌ μμ κ°μ κ°λ λ°μ΄ν°λ₯Ό μ°Ύλλ€.
- 2) μ°Ύμ λ°μ΄ν°λ₯Ό κ°μ₯ μ²μμ μμΉν λ°μ΄ν°μ μμΉμ κ΅μ²΄νλ€.
- 3) κ°μ₯ μ²μ μμΉλ₯Ό μ μΈν λλ¨Έμ§ λ°μ΄ν°λ κ°μ λ°©λ²μΌλ‘ κ΅μ²΄νλ€.
μ΄λ₯Ό μμ¬ μ½λ(Pseudo Code)λ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
For i -> 0 to n:
a[i] to a[n-1] κΉμ§ λΉκ΅ν λ°μ΄ν° μ€ κ°μ₯ μμ λ°μ΄ν°κ° a[j]μ μλ€λ©΄,
a[i] and a[j] swapping
μ ν μ λ ¬ μ§ν
κ·Έλ¦ΌμΌλ‘ μ ν μ λ ¬μ μ§ν κ³Όμ μ μμΈν μ΄ν΄λ΄ μλ€. μμ μνμ λν ν¬ν¨ μ¬λΆ(μ΄κΈ° μνλ‘ μ£Όλλ μ μ£Όλλ)μ λ°λΌμ νμ νμ(PASS)λ₯Ό μΈλ λ°©μμ΄ λ€λ₯Ό μ μμ΅λλ€.










μ ν μ λ ¬ ꡬν
μ κ³Όμ μ μμ€ μ½λλ₯Ό ν΅ν΄ μ΄ν΄λ΄ μλ€.
void selectionSort(int *list, const int n)
{
int i, j, indexMin, temp;
for (i = 0; i < n - 1; i++)
{
indexMin = i;
for (j = i + 1; j < n; j++)
{
if (list[j] < list[indexMin])
{
indexMin = j;
}
}
temp = list[indexMin];
list[indexMin] = list[i];
list[i] = temp;
}
}
μ ν μ λ ¬μ μ±λ₯
볡μ‘λλ₯Ό μ΄ν΄λ³ΌκΉμ? μ΅μ (min), νκ· (ave), μ΅μ (max)μ κ²½μ°μΌ λ μ λ ¬μ μν λΉκ΅ νμλ₯Ό CλΌκ³ νλ©΄ μλμ κ°μ΄ λνλΌ μ μμ΅λλ€.
\[{ C }_{ min }{ =C }_{ ave }={ C }_{ max }=\sum _{ i=1 }^{ N-1 }{ N-i } =\frac { N(N-1) }{ 2 } =O({ n }^{ 2 })\]μ¬κΈ°μ Nμ λ°μ΄ν°μ κ°μλ₯Ό λνλ λλ€.