[μ λ ¬] 6. ν μ λ ¬
ν μ λ ¬
: κΈ°λ³Έ μμ΄λμ΄λ λ²λΈ μ λ ¬κ³Ό λΉμ·νλ€.
1λ±μ λ½μλ΄κ³ , λλ¨Έμ§ μμμμ 1λ±μ κ³μ λ½μλ΄λ©° μ λ ¬νλ€.
λ²λΈ μ λ ¬κ³Ό λ€λ₯Έ μ μ, λ²λΈ μ λ ¬μ λ¨μ μμμμ 1λ±μ λ€μ λΉκ΅λ₯Ό ν΅ν΄ μ°ΎμμΌ νμ§λ§
ν μ λ ¬μ ν(Heap)μ μ΄μ©νλ©΄, 1λ±μ λ½μλΈ λ€, λλ¨Έμ§ μμμμ 1λ±μ λ½μ λ λ€μ λΉκ΅ν νμ μμ΄ 2λ±μ΄ μλμΌλ‘ 1λ±μ΄ λλ€.
κ·ΈλΌ, ν(Heap)μ λν΄ μ κΉ μμ보μ.
νμ μ±μ§
1. 리ν λ Έλλ₯Ό μ μΈν λͺ¨λ λ Έλλ μμμ΄ λ°λμ 2λͺ
2. Max heap: λΆλͺ¨λ μμλ³΄λ€ λ°λμ ν¬λ€. Min heap: λΆλͺ¨λ μμλ³΄λ€ λ°λμ μλ€.
νμ μ½μ κ³Ό μμ (μΆμ²: https://guides.codepath.com/compsci/Heaps)
μ, μ΄μ ν μ λ ¬μ λν΄ λ³Έκ²©μ μΌλ‘ λ€μ΄κ°λ³΄μ.
μ°μ λ€μκ³Ό κ°μ ν° μ€κΈ°λ₯Ό κ°μ§λ€.
" Heapify(νμΌλ‘ λ§λ€κΈ°) " -> " μ λ ¬"
λ°±λ¬Έμ΄ λΆμ¬μΌRun [3, 5, 7, 9, 4, 2]λ₯Ό μ λ ¬ν΄λ³΄μ.
1) Heapify
2) μ λ ¬
μ΄μ λμΌν κ³Όμ μ λ°°μ΄λ‘ ννν κ³Όμ λ κ°μ΄ μ°Έκ³ ν΄μ μ΄ν΄ν΄λ³΄μ.
(μΆμ²: https://www.youtube.com/watch?v=gB7qYgikT1Y)
μκ° λ³΅μ‘λ
: O(nlogn)