What-is-heap.md


๊ฐœ๋…

์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’๋“ค ์ค‘์—์„œ ์ตœ๋Œ“๊ฐ’์ด๋‚˜ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

์ข…๋ฅ˜

  • ์ตœ๋Œ€ ํž™(Max Heap) ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’์ด ์ž์‹๋…ธ๋“œ์˜ ํ‚ค๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ

  • ์ตœ์†Œ ํž™(Min Heap) ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ

heapimage

๊ตฌํ˜„

  • ํž™์—์„œ์˜ ๋ถ€๋ชจ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ์˜ ๊ด€๊ณ„

    • ์™ผ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2

    • ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2 + 1

    • ๋ถ€๋ชจ ์ธ๋ฑ์Šค = ์ž์‹ ์ธ๋ฑ์Šค / 2

heapindex

Python์—์„œ๋Š” heapq ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค

์‚ฝ์ž…

maxheapimg
import heapq
arr = [1,9,7,4,3]
node = 2 #์ถ”๊ฐ€ํ•  ๊ฐ’
heapq.heappush(node, arr)

์‚ญ์ œ

heapremove
import heapq
arr = [1,9,7,4,3]
heapq.heappop(arr)

Last updated