๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/Study

[Algorithm] ํž™(Heap)

by ํ˜ธ๋ฐ€์ด 2022. 6. 26.

๐Ÿ“Œ ํž™(Heap)์ด๋ž€?

  • ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์ž๋ฃŒ๊ตฌ์กฐ
  • ํž™์€ ์ตœ๋Œ€ํž™, ์ตœ์†Œํž™์œผ๋กœ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค.
  • ํž™ ํŠธ๋ฆฌ์—์„œ๋Š” ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•œ๋‹ค. (์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ๋Š” ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.)
  • ์‹œ๊ฐ„๋ณต์žก๋„ = O(log n)

โœ… ์ตœ๋Œ€ํž™

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

key(๋ถ€๋ชจ) >= key(์ž์‹)

 

โœ… ์ตœ์†Œํž™

๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์™„์ง„ ์ด์ง„ํŠธ๋ฆฌ

key(๋ถ€๋ชจ) <= key(์ž์‹)

 

๐Ÿ€ ํž™์˜ ๊ตฌํ˜„

  • ํž™์„ ์ €์žฅํ•˜๋Š” ํ‘œ์ค€์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐฐ์—ด์ด๋‹ค.
  • ๊ตฌํ˜„์„ ์‰ฝ๊ฒŒํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ 0์€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ํŠน์ • ์œ„์น˜์˜ ๋…ธ๋“œ ๋ฒˆํ˜ธ๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด๋„ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๋ฃจํŠธ ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ์˜ ๋ฒˆํ˜ธ๋Š” ํ•ญ์ƒ 3์ด๋‹ค.
  • ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ์˜ ๊ด€๊ณ„
    • ์™ผ์ชฝ ์ž์‹ ์ธ๋ฑ์Šค = (๋ถ€๋ชจ์˜ ์ธ๋ฑ์Šค) * 2 
    • ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ธ๋ฑ์Šค = (๋ถ€๋ชจ์˜ ์ธ๋ฑ์Šค) * 2 + 1 
    • ๋ถ€๋ชจ์˜ ์ธ๋ฑ์Šค = (์ž์‹์˜ ์ธ๋ฑ์Šค) / 2

โœ… ์‚ฝ์ž… ์—ฐ์‚ฐ

  1. ์‚ฝ์ž…ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ํŠธ๋ฆฌ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์›์†Œ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. ๋ถ€๋ชจ ๋…ธ๋“œ์™€์˜ ๋Œ€์†Œ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ์ž๋ฆฌ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

โœ… ์‚ญ์ œ ์—ฐ์‚ฐ

  1. ํž™์—์„œ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
    1. ์ตœ๋Œ€ ํž™์—์„œ ์‚ญ์ œ ์—ฐ์‚ฐ์€ ์ตœ๋Œ“๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  2. ์‚ญ์ œ๋œ ๋ฃจํŠธ ๋…ธ๋“œ์—๋Š” ํž™์˜ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  3. ์ž์‹๋…ธ๋“œ์™€ ๋น„๊ตํ•˜์—ฌ ์กฐ๊ฑด์ด ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ์ด๋™์‹œํ‚จ๋‹ค.

 

๐Ÿ“ ์ถ”๊ฐ€์ž๋ฃŒ

 

'Algorithm > Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Algorithm] ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)  (0) 2022.06.09
[์บ์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜] LRU (Least Recently Used Algorithm)  (0) 2022.02.10