ํž™

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

โœ” ์ตœ๋Œ€ ํžˆํ”„(Max Heap)

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

c++์„ ์ด์šฉํ•œ ์ฝ”๋“œ ์˜ˆ

โœ” ์ตœ์†Œ ํžˆํ”„(Min Heap)

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

c++์„ ์ด์šฉํ•œ ์ฝ”๋“œ ์˜ˆ

โœ” ํž™์˜ ๊ตฌํ˜„

๐Ÿ”ด ๋ฃจํŠธ ์ธ๋ฑ์Šค๊ฐ€ 0์ผ ๊ฒฝ์šฐ
 - ์™ผ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค   = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2 + 1
 - ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2 + 2
 - ๋ถ€๋ชจ ์ธ๋ฑ์Šค = (์ž์‹์˜ ์ธ๋ฑ์Šค - 1) / 2 

๐Ÿ”ด ๋ฃจํŠธ ์ธ๋ฑ์Šค๊ฐ€ 1์ผ ๊ฒฝ์šฐ
 - ์™ผ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค   = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2 
 - ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = ๋ถ€๋ชจ ์ธ๋ฑ์Šค * 2 + 1
 - ๋ถ€๋ชจ ์ธ๋ฑ์Šค = ์ž์‹์˜ ์ธ๋ฑ์Šค / 2 

  ์‚ฝ์ž… : ๊ฐ€์žฅ ๋์— ์‚ฝ์ž… ํ›„ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ๋น„๊ตํ›„ ๊ต์ฒด

  ์‚ญ์ œ : ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ ๊ฐ’์„ ๊บผ๋‚ธ ํ›„ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์˜ ๊ฐ’์„ ์ฒซ ๋ฒˆ์งธ๋กœ ์ด๋™
        --> ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ ์‚ญ์ œ 
        --> ์˜ฎ๊ธด ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ์˜ ๊ฐ’์„ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉฐ(child์™€) ๋น„๊ตํ›„ ๊ต์ฒด

โœ” ์‹œ๊ฐ„ ๋ณต์žก๋„ ( Big-O )

์ž๋ฃŒ๊ตฌ์กฐ์‹œ๊ฐ„ ๋ณต์žก๋„

์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ (Find Max)

์ตœ๋Œ“๊ฐ’ ์ถ”์ถœ (Extract Max)

ํ‚ค ์ฆ๊ฐ€ (Increase Key)

์‚ฝ์ž… (Insert)

์‚ญ์ œ (Delete)

ํ•ฉ๋ณ‘ (Merge)

์ด์ง„ ํž™ (Binary Heap)

O(1)

O(logn)

O(logn)

O(logn)

O(logn)

O(m+n)

ํŽ˜์–ด๋ง ํž™ (Pairing Heap)

O(1)

O(logn)

O(logn)

O(1)

O(logn)

O(1)

์ดํ•ญ ํž™ (Binomial Heap)

O(1)

O(logn)

O(logn)

O(1)

O(logn)

O(logn)

ํ”ผ๋ณด๋‚˜์น˜ ํž™ (fibonacci Heap)

O(1)

O(logn)

O(1)

O(1)

O(logn)

O(1)


โœ” ์‚ฌ์šฉ ์˜ˆ

  • ํ—ˆํ”„๋งŒ ์ฝ”๋“œ

์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์˜ ๋นˆ๋„์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์—ฌ 2์ง„์ˆ˜๋กœ ์••์ถ•ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜.
์ตœ์†Œ ํž™์„ ์ด์šฉํ•œ๋‹ค.

โœ” ์šฐ์„ ์ˆœ์œ„ ํ


์šฐ์„ ์ˆœ์œ„์˜ ๊ฐœ๋…์„ ํ์— ๋„์ž…ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ.
์ผ๋ฐ˜์ ์ธ ํ๋Š” FIFO์˜ ๊ทœ์น™์œผ๋กœ ๋จผ์ € ๋“ค์–ด์˜จ๊ฒƒ์ด ๋‚˜๊ฐ€๊ฒŒ ๋˜๋‚˜ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜๊ฐ€๊ฒŒ ๋œ๋‹ค.

Last updated