ํ (Heap) ?
๋ฐ์ดํฐ์์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด ๊ณ ์๋ ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)
- ์์ ์ด์ง ํธ๋ฆฌ : ๋ ธ๋๋ฅผ ์ฝ์ ํ ๋, ์ตํ๋จ ์ผ์ชฝ ๋ ธ๋๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ์ ํ๋ ํธ๋ฆฌ
ํ์ ์ฌ์ฉํ๋ ์ด์
- ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ , ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด O(n)์ด ๊ฑธ๋ฆผ <--์๊ฐ๋ณต์ก๋
- ์ด์๋ฐํด, ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐพ์ผ๋ฉด, O(logn)์ด ๊ฑธ๋ฆผ
- ์ฐ์ ์์ ํ์ ๊ฐ์ด ์ต๋๊ฐ ๋๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์์ผํ๋ ์๋ฃ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ํ์ฉ
ํ(Heap) ๊ตฌ์กฐ
- ํ์ ์ต๋๊ฐ์ ๊ตฌํ๊ธฐ ์ํ ๊ตฌ์กฐ(์ต๋ ํ, Max Heap)์, ์ต์๊ฐ์ ๊ตฌํ๊ธฐ ์ํ ๊ตฌ์กฐ(์ต์ ํ, Min Heap)๋ก ๋ถ๋ฅํ ์ ์์
- ํ์ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ
- ๊ฐ ๋ ธ๋์ ๊ฐ์ ํด๋น ๋ ธ๋์ ์์ ๋ ธ๋๊ฐ ๊ฐ์ง ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค. (์ต๋ ํ์ ๊ฒฝ์ฐ)
- ์์ ์ด์ง ํธ๋ฆฌ ํํ
ํ vs ์ด์งํ์ํธ๋ฆฌ
- ๊ณตํต์ : ๋๋ค ์ด์ง ํธ๋ฆฌ
- ์ฐจ์ด์
- ํ์ ๊ฐ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์(Max Heap์ ๊ฒฝ์ฐ)
- ์ด์ง ํ์ ํธ๋ฆฌ๋ ์ผ์ชฝ ์์ ๋ ธ๋ < ๋ถ๋ชจ ๋ ธ๋ < ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ
- ํ์ ์ด์งํ์ํธ๋ฆฌ์ ์กฐ๊ฑด์ธ ๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์์น ์กฐ๊ฑด์ด ์์
- ๋ชฉ์
- ์ด์ง ํ์ ํธ๋ฆฌ : ํ์์ ์ํ ๊ตฌ์กฐ
- ํ : ์ต๋/์ต์๊ฐ ๊ฒ์์ ์ํ ๊ตฌ์กฐ
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ (Sort Algorithm) (1) | 2024.01.30 |
---|---|
[Data Structure] ํ (Heap)์ ๊ตฌํ - ํ๊ณผ ๋ฐฐ์ด (1) | 2024.01.30 |
[Data Structure] ํธ๋ฆฌ (Tree) (0) | 2024.01.29 |
[Data Structure] hash() ํด์ ํจ์ (1) | 2024.01.29 |
[Data Structure] ์ถฉ๋(Collision) ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ : ํด์ ํจ์ (0) | 2024.01.26 |