int arr[4] = {1,2,3,4}
이진트리 형태로 되어있음
삽입/삭제 : O(logN)
max/min-heap : 트리에서 가장 큰 값 or 가장 작은 값만 조회할 수 있음 (c++에서 기본 힙은 max-heap)
최대힙
priority_queue<int, vector<int>> q;
int는 큐에 들어갈 데이터의 타입을 말한다.
vector는 데이터들이 들어갈 컨테이너이다. 실제로는 이곳에 int 데이터들이 저장된다. 하지만 동작을 우선순위 큐 처럼 하게 하기 위해서 priorty_queue 타입으로 감싼 것이라고 보면 된다.
최소힙
priority_queue<int, vector<int>, greater<int>> q;
⭐️ 다른 방법 : 최대힙에 음수로 바꾸어 넣어주고 뺄 때 다시 음수를 붙여준다 -> 최소힙과 같은 효과
heap sort : 우선순위 큐에 담으면 자동으로 정렬되는 효과를 볼 수 있음