μ Έ μ λ ¬ (shell sort) μκ³ λ¦¬μ¦
μ Έ μ λ ¬μ λ±μ₯
μ½μ μ λ ¬μ 보μ
μ½μ μ λ ¬μ μ΄κΈ°λ¦¬μ€νΈκ° "κ±°μ μ λ ¬"λμ΄ μμ κ²½μ° ν¨μ¨μ μ΄λ€.
μμμΌλ‘ μ λ ¬λ μ΅μ μ κ²½μ°, μ΄λμ λ§μ΄ ν΄μΌ μ΅μ’ μμΉμ λ€λ€λ₯Ό μ μλ€.
μ½μ μ λ ¬μ μκ°λ³΅μ‘λ
O(n) : μ΄λ―Έ μ λ ¬λ μ΅μ μ κ²½μ°, n-1λ²μ 1νμ°¨ λΉκ΅λ§ μννλ€.
O(n^2) : μμμΌλ‘ μ λ ¬λ μ΅μ μ κ²½μ° 1+2+3+ ... + (n-2) + (n-1) = μ΄ n(n-1)/2λ² μ΄λνλ€.
μ Έ μ λ ¬
- λ°μ΄ν°λ₯Ό μμ κ° μ λ λ¬μ±λ¬μ± λλμ΄μ μ½μ μ λ ¬νλ€.
- λ°μ΄ν°λ₯Ό λ€μ μκ² λλμ΄μ μ½μ μ λ ¬νλ€.
- μ΄λ κ² κ³μ νμ¬ λ§μΉ¨λ΄ μ λ ¬μ΄ λλ€.
λλλ κ°κ²© k
- κ°κ²© kμ μ΄κΉκ° : (λ°μ΄ν° κ°μ) / 2
- 맀 νμ λ§λ€ kλ μ λ°μΌλ‘ λλλ€. λ¨, νμ νμκ° λλλ‘ κ°μ μμ νλ€. (μ§μμΈ κ²½μ° +1)
νμλ‘ λ€λ£¨λ κ²μ΄ μ±λ₯μ λ μ’μ μν₯μ λΌμΉλ€λ μ°κ΅¬ κ²°κ³Ό..
- kκ° 1μ΄λ λκΉμ§ λ°λ³΅νλ€.
리μ€νΈλ₯Ό λΆλΆ 리μ€νΈλ‘ λλ ν μ½μ μ λ ¬μ ν λ, κ° λ°μ΄ν°λ κΈ΄ 거리λ₯Ό μ΄λνλ€.
λ°λΌμ κ° μμκ° μ΅μ’ μμΉμ μμ νλ₯ μ΄ λμμ§λ€.
(μ½μ μ λ ¬μ ν λ²μ ν μμμ μμΉλ§ κ²°μ λκΈ° λλ¬Έμ λΉν¨μ¨μ μ΄λ€. )
μ Έ μ λ ¬μμ κ°κ²©μ΄ 1μΌ λ μ½μ μ λ ¬μ νμ§λ§, λ°°μ΄μ μ²μ μνλ³΄λ€ μ΄λ μ λ μ λ ¬μ΄ λμ΄μμΌλ―λ‘, μ²μλΆν° μ½μ μ λ ¬μ νλ κ²λ³΄λ€ μλκ° λΉ λ₯΄λ€.
μκ°λ³΅μ‘λ
μ΅μ : T(n) = O(n) : μ½μ μ λ ¬μ²λΌ μ΄λ―Έ μ λ ¬λ κ²½μ°, 1νμ°¨μμ λΉκ΅λ§ μννλ€.
νκ· : T(n) = O(n^1.3) ~ O(n^1.5) : κ³μ°λ°©λ²μ΄ νλ€λ€κ³ νλ μμλκΈ°λ§ νμ.
μ΅μ
: T(n) = O(n^2)
λΆμμ μ λ ¬
μ Έ μ λ ¬μ μ λ ¬ μ΄ν μ΄κΈ° μμμ λ¬λΌμ§ μ μλ λΆμμ μ λ ¬μ΄λ€.
[25, 25, 6, 20, 4, 3, 22, 1, 0, 15, 16] k = 5
[3, 25, 6, 20, 4, 16, 22, 1, 0, 15, 25] k = 5
μΆμ²
https://gmlwjd9405.github.io/2018/05/08/algorithm-shell-sort.html