ํ(Heap)์ด๋?
ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์,
์ฑ์ง์ ๋ฐ๋ผ ์ต๋ ํ(Map Heap)๊ณผ, ์ต์ ํ(Min Heap), ๋ ๊ฐ์ง ์ข ๋ฅ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
์ต๋ ํ (Max Heap)
1. ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์
2. ๊ฐ ๋ ธ๋์ Key ๊ฐ์ด ์์ ๋ ธ๋์ Key ๊ฐ๋ณด๋ค ์์ง ์๋ค.
์ต์ด ํ (Min Heap)
1. ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์
2. ๊ฐ ๋ ธ๋์ Key ๊ฐ์ด ์์ ๋ ธ๋์ Key ๊ฐ๋ณด๋ค ํฌ์ง ์๋ค.
์ฐธ๊ณ ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ์ค, ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ ์์ญ์ ๋๋ถ๋ถ ํ ์๋ฃ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
ํ์์์ ์ฝ์
์ต๋ ํ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ฝ์ ํ๋ ค๋ ๋ ธ๋๋ฅผ ๊ฐ์ฅ ๋ง์ง๋ง์ ์ถ๊ฐํฉ๋๋ค.
์ด๋ก ์ธํด ํ์ด ๋ง๊ฐ์ก์ผ๋ฏ๋ก ๋ค์์ ํตํด ๋ณต๊ตฌํฉ๋๋ค.
์ฝ์ ๋ ๋ ธ๋ ์ฆ, Heap์ ๋ง์ง๋ง ๋ ธ๋์์๋ถํฐ ๋ค์์ ๋ฐ๋ณตํฉ๋๋ค.
1. ๋ถ๋ชจ ๋ ธ๋๋ฅผ ํ์ธํฉ๋๋ค. ๋ง์ฝ ์กด์ฌํ์ง ์๋๋ค๋ฉด ๋ฐ๋ณต์ ์ข ๋ฃํฉ๋๋ค.
2. ๋ถ๋ชจ ๋ ธ๋๊ฐ ์กด์ฌํ๋ค๋ฉด, ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ํด๋น ์์น๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ์ ๋ ์์น์ด๋ฏ๋ก ๋ฐ๋ณต์ ์ข ๋ฃํฉ๋๋ค.
3. ๋ง์ฝ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํฐ ๊ฒฝ์ฐ ๋ถ๋ชจ๋ ธ๋์ ์์น๋ฅผ ๋ฐ๊พผ ํ ๋ค์ ๋ฐ๊พผ ์์น์ ๋ถ๋ชจ ๋ ธ๋์ ๋น๊ตํ๋ ์์ ์ ๋ฐ๋ณตํฉ๋๋ค.
๋ถ์
๋ฃจํธ์ ๋ ๋ฒจ์ 1๋ก ๋ณด์์ ๋, n๊ฐ์ ๋ ธ๋๋ฅผ ๊ฐ๋ ์์ ์ด์งํธ๋ฆฌ์ ๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$[log \; n] + 1 $$
๋ฐ๋ผ์ ์ฝ์ ์ ์ํด ๋ถ๋ชจ์ ๋น๊ตํ๋ ์์ ์ ๋ฐ๋ณตํ๋ ์ต๋ ํ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$[log \; n] + 1 $$
์ฆ ์๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$O(log\;n)$$
ํ์์์ ์ญ์ (Root ๋ ธ๋ ์ญ์ )
์ต๋ ํ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ต๋ ํ์์์ Root๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๊ฒฐ๊ตญ ์ต๋๊ฐ์ ์ญ์ ํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
๋ฃจํธ ๋ ธ๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์ด๋ก ์ธํด ํ์ด ๋ง๊ฐ์ก์ผ๋ฏ๋ก ๋ค์์ ํตํด ๋ณต๊ตฌํฉ๋๋ค.
Heap์ ๋ง์ง๋ง ๋ ธ๋๋ฅผ root์ ์์น๋ก ๊ฐ์ ธ์ต๋๋ค.
์ดํ ๋ฃจํธ์์๋ถํฐ ๋ค์์ ๋ฐ๋ณตํฉ๋๋ค.
1. ์์์ด ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค. ์กด์ฌํ๋ค๋ฉด ์์๋ค ์ค ํฐ ๊ฐ์ ๊ฐ๋ ์์๊ณผ ์์น๋ฅผ ๋ฐ๊ฟ๋๋ค.
2. ์์์ด ์กด์ฌํ์ง๋ง ์์์ ๊ฐ์ด ํ์ฌ ๊ฐ๋ณด๋ค ์๋ค๋ฉด ๋ฐ๋ณต์ ์ข ๋ฃํฉ๋๋ค.
3. ์์์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ๋ฐ๋ณต์ ์ข ๋ฃํฉ๋๋ค.
๋ถ์
์ฝ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$O(log\;n)$$
์๋ฐ๋ก ๊ตฌํ
https://ttl-blog.tistory.com/709
'๐ฅ Computer Science > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] - ๋ฅ(Deap : Double Endeded Heap) (0) | 2022.06.07 |
---|---|
[์๋ฃ๊ตฌ์กฐ] - ์ฐ์ ์์ ํ(Priority Queue) (0) | 2022.06.06 |
[์๋ฃ๊ตฌ์กฐ] - ์ด์ง ๊ฒ์ ํธ๋ฆฌ (Binary Search Tree - BST) (0) | 2022.06.05 |
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[5] - ์ด์ง ํธ๋ฆฌ์ ๊ตฌํ (0) | 2022.06.05 |
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[4] - ํธ๋ฆฌ์ ํ์ (์ํ) (0) | 2022.06.05 |