Priority Queue
์ฐ์ ์์ ํ๋ ๋ค์ด๊ฐ ์์์ ์๊ด์์ด ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์จ๋ค.
์๋ฎฌ๋ ์ด์ ์์คํ (ex) ์ถ๋ฐ์๊ฐ, ๋๊ธฐ์๊ฐ, ์์์๊ฐ
๋คํธ์ํฌ ํธ๋ํฝ ์ ์ด
์ด์ ์ฒด์ ์์์ ์์ ์ค์ผ์ฅด๋ง
๋ฐ์ดํฐ๋ฅผ ๊ทผ๊ฑฐ๋ก ์ฐ์ ์์๋ฅผ ํ๋จํด์ผํ๋ฉฐ, ๋ชฉ์ ์ ๋ง๊ฒ ์ฐ์ ์์๋ฅผ ์ ํด์ผํ๋ค. ์ฐ์ ์์๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ ์กด์ฌํ ์ ์๋ค.
์ฐ์ ์์ ํ์์ ๊ฐ์ฅ ์ค์ํ ์ฐ์ฐ์ ์ฝ์ (insert)๊ณผ ์ญ์ (delete)์ด๋ค.
์ฐ์ฐ
์ค๋ช
create()
์ฐ์ ์์ ํ๋ฅผ ์์ฑ
init(q)
์ฐ์ ์์ ํ q ์ด๊ธฐํ
is_empty(q)
์ฐ์ ์์ ํ q๊ฐ ๋น์ด์๋์ง ๊ฒ์ฌ
is_full(q)
์ฐ์ ์์ ํ q๊ฐ ๊ฐ๋์ฐผ๋์ง ๊ฒ์ฌ
insert(q,x)
์ฐ์ ์์ ํ q์ x์ถ๊ฐ
delete(q)
์ฐ์ ์์ํ๋ก๋ถํฐ ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์ ์์ ์ญ์ , ๋ฐํ
find(q)
์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ์์ ๋ฐํ
๊ตฌํ๋ฐฉ๋ฒ
์ฐ์ ์์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ ์ ์๋ค.
๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ
์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ
ํ(Heap)์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ
๋ฐฐ์ด์ด๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด์ ๊ตฌํํ๋ฉด ํ๋ณด๋ค๋ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ผ๋ ๋จ์ ์ด ์๋ค.
๋ฐฐ์ด
๋ฐ์ดํฐ ์ฝ์ ๋ฐ ์ญ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ๋ ์ฐ์ฐ์ ๊ณ์ํด์ผํ๋ค. (๋น๊ธฐ๊ฑฐ๋ ๋ฐ์ด์ผํ๋)
์ฝ์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด์ ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ฐ์ ์์๋ฅผ ๋น๊ตํด์ผํ๋ค.
์ฐ๊ฒฐ๋ฆฌ์คํธ
์ฝ์ ์์น๋ฅผ ์ฐพ๊ธฐ์ํด์ ๋ชจ๋ ๋ ธ๋์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ฐ์ ์์๋ฅผ ๋น๊ตํด์ผํ๋ค.
๋ฐ์ดํฐ๊ฐ ์ ์ ๊ฒฝ์ฐ์๋ ๋จ์ ์ด ์๋ ์๋ ์์ง๋ง ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด ๋น๊ตํ ๋์์ด ๋ง์์ ธ ์ฑ๋ฅ์ด ์ ํ๋๋ค.
ํ์ ์์ ์ด์งํธ๋ฆฌ๋ก ๊ตฌํํ๋ค. ํ์ ๋ํ ์์ธํ ์ค๋ช ์ ํ(Heap) ๊ฒ์๋ฌผ์์ ํ๋ค.
ํํ๋ฐฉ๋ฒ
์ฝ์
์ญ์
์์์๋ ๋ฐฐ์ด
O(1)
O(n)
์์์๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
O(1)
O(n)
์ ๋ ฌ๋ ๋ฐฐ์ด
O(n)
O(1)
์ ๋ ฌ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ
O(n)
O(1)
ํ(Heap)
O(logn)
O(logn)
์ด๋ฌํ ์ฑ๋ฅ์ฐจ์ด๋ก ์ฃผ๋ก Heap์ ์ด์ฉํด์ ์ฐ์ ์์ํ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
Last updated