Home /Data structure/ ๐Ÿ’ฌ Priority Queue, Heap
Post
Cancel

/Data structure/ ๐Ÿ’ฌ Priority Queue, Heap



โœ”๏ธ ํ(Queue)
๋จผ์ € ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” FIFO(First In First Out) ํ˜•์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ
โœ”๏ธ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)
๋จผ์ € ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ,
์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํž™(Heap)์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„,
๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ๋„ ๊ตฌํ˜„๊ฐ€๋Šฅ



ํž™(Heap)


  • ํž™(Heap)์€ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์™„์ „์ด์ง„ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’ ์ค‘ ์ตœ๋Œ“๊ฐ’ ๋˜๋Š” ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ์—ฐ์‚ฐ์ด ๋น ๋ฆ„



ํž™์˜ ํŠน์ง•



  • ์™„์ „์ด์ง„ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง
  • ๋ถ€๋ชจ๋…ธ๋“œ์™€ ์„œ๋ธŒํŠธ๋ฆฌ๊ฐ„ ๋Œ€์†Œ ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝ๋จ (๋ฐ˜์ •๋ ฌ ์ƒํƒœ)
  • ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ(BST)์™€ ๋‹ฌ๋ฆฌ ์ค‘๋ณต๋œ ๊ฐ’์ด ํ—ˆ์šฉ



ํž™์˜ ์ข…๋ฅ˜



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


แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-02 แ„‹แ…ฉแ„’แ…ฎ 3 52 49


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


แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-02 แ„‹แ…ฉแ„’แ…ฎ 3 53 07


์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„๋ฐฉ๋ฒ• ๋น„๊ต


  • ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ
    • ์„ ํ˜• ๊ตฌ์กฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ
    • ์‚ฝ์ž… ๋˜๋Š” ์‚ญ์ œ ์—ฐ์‚ฐ์„ ์œ„ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)
  • ํž™ํŠธ๋ฆฌ
    • ์™„์ „์ด์ง„ํŠธ๋ฆฌ ๊ตฌ์กฐ
    • ํž™ํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” logโ‚‚(n+1)
    • ํž™์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logโ‚‚n)
๊ตฌํ˜„๋ฐฉ๋ฒ•์‚ฝ์ž…์‚ญ์ œ
์ˆœ์„œ์—†๋Š” ๋ฐฐ์—ดO(1)O(n)
์ˆœ์„œ์—†๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธO(1)O(n)
์ •๋ ฌ๋œ ๋ฐฐ์—ดO(n)O(1)
์ •๋ ฌ๋œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธO(n)O(1)
ํž™O(logโ‚‚n)O(logโ‚‚n)

์šฐ์„ ์ˆœ์œ„ ํ ADT























(์ฐธ๊ณ )



๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์—ฌ๋Ÿฌ๊ธ€๊ณผ ์ฑ… ์ฝ์€ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ข‹์€ ๊ธ€๋กœ ์ €์˜ ๊ณต๋ถ€์— ๋„์›€์„ ์ฃผ์‹œ๋Š” ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

๐Ÿฃ ๋ฐฑ์ค€ Q11660 - ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5 (java)

/Data structure/ ๐Ÿ’ฌ Stack, Queue