[Algorithm] μ½μ μ λ ¬ - Insertion Sort
Updated:
-
Insertion Sort
μ§κΈκΉμ§ λ°°μ΄ μ λ ¬ λ°©λ²λ€μ μ 리ν΄λ³΄λ €κ³ νλ€.
λ€λ₯Έ λΈλ‘κ·Έλ₯Ό 보면 μκ°λ³΅μ‘λ λ±λ± μμ£Ό μμΈν μ€λͺ νκ³ μλ€.
νμ§λ§ λλ μμ§ λ¨μκ² κ°λ₯΄μ³ μ€ μ λλ μλκΈ° λλ¬Έμ 볡μ΅μ©μΌλ‘ μ 리νκ³ μλ€.
κ·Έλμ μμ£Ό κ°λ¨νκ² κ°λ μ΄λ μ½λ μ λλ§ μκ°νλ €κ³ νλ€.
κ·Έ μ€ μ²«λ²μ§Έλ μ½μ μ λ ¬μ΄λ€.
μ’ μ’ μ νμ λ ¬κ³Ό μ½μ μ λ ¬μ΄ ν·κ°λ¦΄λκ° μλ€.
λ¬Όλ‘ μ λ ¬λ§ λλ€λ©΄ μ΄λ€ μ λ ¬μ μ¨λ μκ΄ μμ§λ§, μκ°λ³΅μ‘λμ μ΅κ³ ν¨μ¨μ μν΄μ
μν©μ λ§λ μ λ ¬μ μ¨μΌ ν κ²μ΄λ€.
μ½μ μ λ ¬μ λ§ κ·Έλλ‘ μμμ λΆν° λΉκ΅λ₯Ό ν΄ μμ μ μμΉμ μ½μ νλ μ λ ¬μ΄λ€.
μμ λ§λ‘λ§ μ°λ©΄ μμ² μ¬μ 보μΈλ€. λ¬Όλ‘ λ€λ₯Έ μ λ ¬μ λΉν΄ μ½κΈ΄ νμ§λ§
μ μ΅νλμ !
μ μ¬μ§μ΄ μμ£Όμμ£Ό κ°λ¨νκ² νν ν μ½μ μ λ ¬μ΄λ€.
μΌμͺ½μμ λΆν° KEYκ°μ μ ν΄ κ·Έ KEYκ°μ μμΉλ₯Ό μ°Ύμ μ½μ νλ κ² μ΄λ€.
μ½λλ‘ λ³΄μλ©΄
void insertionSort(int *arr, int arrSize) { int i, j, key; // λ°°μ΄μ μμ κ°μ - 1 λ§νΌ λ°λ³΅νλ€. for(i=1; i<arrSize; i++) { key = arr[i]; for(j=i-1; j>=0; j--) { if(key < arr[j]) { arr[j+1] = arr[j]; // key κ° λ³΄λ€ ν¬λ€λ©΄ μ€λ₯Έμͺ½μΌλ‘ νμΉΈ μ΄λ else break; } arr[j+1] = key; // λΉκ΅ ν j κ°μ key κ°μ΄ μ½μ λ μμΉ - 1 μ΄ λλ―λ‘ } }
μ΄ μ λλ‘ νν ν μ μκ² λ€.
μ΄μ€ ν¬λ¬Έ μμ 쑰건문μ μ¬μ©νμ§ μκ³ νμ€λ‘ μ²λ¦¬ν μ μλ€.
κ·Έ λ°©λ²λ ν λ² μκ°ν΄λ³΄μ.
Leave a comment