๐™‹๐™ง๐™ž๐™ค๐™ง๐™ž๐™ฉ๐™ฎ ๐™Œ๐™ช๐™š๐™ช๐™š

uuuouuoยท2022๋…„ 7์›” 8์ผ
0
post-thumbnail

๐Ÿ“– ์šฐ์„ ์ˆœ์œ„ ํ


๐Ÿ’ฌ ํž™(Heap)

  • ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ ์ค‘ ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๋…ธ๋“œ๋‚˜ ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๋…ธ๋“œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์ž๋ฃŒ๊ตฌ์กฐ

โ—พ ์ตœ๋Œ€ ํž™(Max Heap)

  • ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๋…ธ๋“œ ์ฐพ๊ธฐ ์œ„ํ•œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ
  • ๋ถ€๋ชจ ๋…ธ๋“œ ํ‚ค๊ฐ’ > ์ž์‹ ๋…ธ๋“œ ํ‚ค๊ฐ’
  • ๋ฃจํŠธ ๋…ธ๋“œ : ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๋…ธ๋“œ

โ—พ ์ตœ์†Œ ํž™(Min Heap)

  • ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๋…ธ๋“œ ์ฐพ๊ธฐ ์œ„ํ•œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ
  • ๋ถ€๋ชจ ๋…ธ๋“œ ํ‚ค๊ฐ’ < ์ž์‹ ๋…ธ๋“œ ํ‚ค๊ฐ’
  • ๋ฃจํŠธ ๋…ธ๋“œ : ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๋…ธ๋“œ

์‚ฝ์ž… ์—ฐ์‚ฐ ๊ณผ์ •

  1. ๋น„์–ด์žˆ๋Š” ์ž๋ฆฌ๋กœ ์ž„์‹œ ์‚ฝ์ž…
  2. ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์œ„์น˜ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์œ„์น˜ ๋ณ€๊ฒฝ
  3. ์ž๋ฆฌ ํ™•์ •๋˜๋ฉด ๋

์‚ญ์ œ ์—ฐ์‚ฐ ๊ณผ์ •

  • ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ
  1. ๋ฃจํŠธ ๋…ธ๋“œ ์‚ญ์ œ
  2. ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ ๋ฃจํŠธ ๋…ธ๋“œ ์œ„์น˜๋กœ ์ด๋™
  3. ์ž์‹ ๋…ธ๋“œ์™€ ๋น„๊ตํ•˜๋ฉฐ ์œ„์น˜ ๋ณ€๊ฒฝ
  4. ์ž๋ฆฌ ํ™•์ •๋˜๋ฉด ๋

๐Ÿ’ฌ ์šฐ์„ ์ˆœ์œ„ ํ ํŠน์ง•

  1. ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์›์†Œ ๋จผ์ € ์ถœ๋ ฅ (์›์†Œ๋Š” ๋น„๊ต ๊ฐ€๋Šฅํ•œ ๊ธฐ์ค€์ด ์žˆ์–ด์•ผ ํ•จ)
  2. ๋‚ด๋ถ€ ์š”์†Œ๋Š” heap์œผ๋กœ ๊ตฌ์„ฑ๋˜์žˆ๋Š” ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ ๊ตฌ์กฐ
  3. ์‹œ๊ฐ„ ๋ณต์žก๋„: ์‚ฝ์ž… O(logN), ์‚ญ์ œO(logN)
  4. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ, ์ž‘์—… ์Šค์ผ€์ค„๋ง, ์ˆ˜์น˜ํ•ด์„ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ

๐Ÿ’ฌ ์šฐ์„ ์ˆœ์œ„ ํ ๋ฉ”์†Œ๋“œ

  • Priority Queue ์„ ์–ธ
    • PriorityQueue<Element> pq = new PriorityQueue<>(); : ์˜ค๋ฆ„์ฐจ์ˆœ
    • PriorityQueue<Element> pq = new PriorityQueue<>(Collections.reverseOrder()); : ๋‚ด๋ฆผ์ฐจ์ˆœ
๋ฉ”์†Œ๋“œ์„ค๋ช…
boolean add(E e)์ „๋‹ฌ๋œ Element ์‚ฝ์ž…
E element()Element๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ ์ œ๊ฑฐ๋Š” ์•ˆ๋จ
boolean offer(E e)์ „๋‹ฌ๋œ Element ์‚ฝ์ž…
E peek()๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์›์†Œ ํ™•์ธ (์—†์œผ๋ฉด null ๋ฐ˜ํ™˜)
E poll()๊ฐ€์žฅ ์•ž ์›์†Œ ๋ฐ˜ํ™˜ ํ›„ ์ œ๊ฑฐ (์—†์œผ๋ฉด null ๋ฐ˜ํ™˜)
boolean remove(Object o)์ „๋‹ฌ๋œ ์›์†Œ ์ œ๊ฑฐ
Comparator< ? super E > comparator()์š”์†Œ ์ •๋ ฌ์— ์‚ฌ์šฉ๋˜๋Š” ๋น„๊ต์ž ๋ฐ˜ํ™˜ ๋˜๋Š” ์ •๋ ฌ๋  ๊ฒฝ์šฐ null ๋ฐ˜ํ™˜
boolean contains(Object o)์ „๋‹ฌ๋œ ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ true ๋ฐ˜ํ™˜
int size()์ด ํ์˜ ์š”์†Œ ์ˆ˜ ๋ฐ˜ํ™˜
Object[] toArray()๋ชจ๋“  ์š”์†Œ ํฌํ•จํ•œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
Iterator< E > iterator()์ด ํ ์š”์†Œ์— ๋Œ€ํ•œ ๋ฐ˜๋ณต์ž ๋ฐ˜ํ™˜
  • ์ด ์™ธ์—๋„ Collection์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toString ๋“ฑ

0๊ฐœ์˜ ๋Œ“๊ธ€