<aside> ❓ 힙(Heap)이란, 특정한 순서에 따라 정렬된 요소들을 저장하는 트리 기반의 자료구조이다.

</aside>

→ 일반적으로 **이진 힙(binary heap)**으로 구현되며, **우선순위 큐(priority queue)**와 같은 다른 추상 자료형의 구현에 주로 사용된다.

Untitled

특징

<aside> 💡 Heap은 우선순위 기반 작업 처리에 유리하다.

⭐Heap in JAVA

Java에서는 PriorityQueue 우선순위 큐 클래스를 사용해 Heap을 구현할 수 있다.

→ 요소 삽입 시, Heap의 속성을 유지

/* min heap */
PriorityQueue<Integer> minHeap = new PriorityQueue<>();

/* max heap */
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(**Collections.reverseOrder()**);

<aside> 💡 만약 특정 기준으로 정렬하고 싶거나 큐에 저장된 객체의 어떤 속성으로 정렬하고 싶다면?

→ 클래스를 Comparable을 구현하도록 하거나 매개변수로 Comparator 전달

</aside>

⭐Heap in Programmers

프로그래머스에 있는 힙 문제들

더 맵게

디스크 컨트롤러

이중우선순위큐