Insertion Sort (μ½μ μ λ ¬)
μ½μ μ λ ¬μ μ΄λ―Έ μ λ ¬λ λ°μ΄ν° λ²μμ μ λ ¬λμ§ μμ λ°μ΄ν°λ₯Ό μ μ ν μμΉμ μ½μ μμΌ μ λ ¬νλ λ°©μμ΄λ€.
μκ°λ³΅μ‘λλ λ리μ§λ§ ꡬνμ μ΄λ ΅μ§ μμ νΈμ΄λ€.
μ½μ μ λ ¬ κ³Όμ
νμ¬ indexμ λ°μ΄ν°λ₯Ό μ ννλ€.
νμ¬ μ νν λ°μ΄ν°κ° μ λ ¬λ λ²μμ μ½μ λ μμΉλ₯Ό νμνλ€.
μ½μ μμΉλΆν° indexμ μλ μμΉκΉμ§ shift μ°μ°μ μννλ€.
μ½μ μμΉμ νμ¬ μ νν λ°μ΄ν°λ₯Ό μ½μ νκ³ index++ μ°μ°μ μννλ€.
μ 체 λ°μ΄ν° ν¬κΈ°λ§νΌ indexκ° μ»€μ§ λκΉμ§, μ¦ μ νν λ°μ΄ν°κ° μμ λκΉμ§ λ°λ³΅νλ€.

μλ₯Ό λ€μ΄ μμ κ°μ΄ 5λ²μ§Έ μμκΉμ§ μ λ ¬μ΄ λμ΄ μκ³ , 6λ²μ§Έ μμλ₯Ό μ λ ¬ν μ°¨λ‘μ΄λ€.
μ½μ μ λ ¬μ μ μμλ€μ΄ λͺ¨λ μ λ ¬λμ΄ μλ μν©μ΄κ³ μ«μ 4λ₯Ό μ μ ν μμΉμ μ½μ νμ¬ μ λ ¬νλ €κ³ νλ€.
λ¨Όμ 4λ₯Ό keyλ‘ μ§μ νκ³ μμ μλ μμ(9)μ λΉκ΅ν΄μ μμ μλ μμκ° λ ν¬λ©΄
swapνλ€.swapμ΄ μΌμ΄λ μ΄ν, κ·Έ μμ μλ μμμ λ€μ λΉκ΅νμ¬ κ°μ μμ μ λ°λ³΅νλ€.
μμ μλ μμκ° keyλ³΄λ€ μμ κ²½μ° νμμ μ€λ¨νλ€.
μμ κ°μ λ°©μμΌλ‘ μμκ° μ€λ¦μ°¨μ μ λ ¬μ μ μ§ν μ± μ§ννλ λ°©μμ΄ μ½μ μ λ ¬μ΄λ€.
μΌλ§λ μ λ ¬λλλμ λ°λΌ μ§ν νμλ λ¬λΌμ§μ§λ§ μ΅λ n(n-1)/2 λ² νμμ΄ μ§νλλ€.
λ°λΌμ μκ° λ³΅μ‘λλ O(N^2) μ΄λ€.
ex)
1 9 8 6 4, key = 4
1 9 8 6 6
(j = 3)1 9 8 8 6
(j = 2)1 9 9 8 6
(j = 1)1 4 9 8 6
(j = 0), arr[j + 1= key
Last updated