Binary Heap
ํ(heap)์ ์ด์ง ํ(binary heap)์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ์ต๋๊ฐ ๋ฐ ์ต์๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ณ ์๋ ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
์์ ์ด์งํธ๋ฆฌ(Complete Binary Tree) ์ด๋ค.
๋ถ๋ชจ๋
ธ๋์ ํค๊ฐ๊ณผ ์์๋
ธ๋์ ํค๊ฐ ์ฌ์ด์๋ ๋์๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ค.
ํค๊ฐ ๋์๊ด๊ณ๋ ์ค๋ก์ง ๋ถ๋ชจ์์ ๊ฐ์๋ง ์ฑ๋ฆฝ๋๋ฉฐ ํ์ ์ฌ์ด์๋ ๋์๊ด๊ณ๊ฐ ์ ํด์ง์ง ์์
Root node๋ ๊ฐ์ฅ ๋(์ต๋|์ต์)๊ฐ์ด๋ค. ํญ์์์๋ ธ๋๋ ๋ถ๋ชจ๋ ธ๋๋ณด๋ค ๊ธฐ์ค์๋ฐ๋ฅธ๋ค (์๊ฑฐ๋, ํฌ๋ค)
ํน์ง
ํ์ ์์ ์ด์งํธ๋ฆฌ์ ๋๋ค. ํ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด๋ก ํํํฉ๋๋ค. ๋ฃจํธ ๋ ธ๋์ ์ธ๋ฑ์ค i๊ฐ 1์ธ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ด ์์ต๋๋ค.
๋
ธ๋ i์ ๋ถ๋ชจ๋
ธ๋ ์ธ๋ฑ์ค : โ๏ฟฝ/2โ
๋
ธ๋ i์ ์ผ์ชฝ ์์ ๋
ธ๋ ์ธ๋ฑ์ค : 2*i
๋
ธ๋ i์ ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋ ์ธ๋ฑ์ค : 2*i + 1
โป์ผ์ชฝ๋ถํฐ ํ์ค์ฉ ์ผ๋ค
Heapify
heapify๋ ์ด์งํธ๋ฆฌ์์ ํ ์์ฑ์ ์ ์งํ๋ ์์ ์ ํฉ๋๋ค. ์์์ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ์์ ์ ํฉ๋๋ค.
์์ ๊ฐ๊ณผ ์์ ๋
ธ๋ ๊ฐ์ ๋น๊ตํฉ๋๋ค.
๋ง์ฝ ์์ ๋
ธ๋ ๊ฐ์ด ํฌ๋ค๋ฉด ์ผ์ชฝ ์ค๋ฅธ์ชฝ ์์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ผ๋ก ๊ตํํฉ๋๋ค.
ํ ์์ฑ์ด ์ ์ง ๋ ๋๊น์ง 1,2๋ฒ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
Last updated