Dazzling 개발 노트
[JAVA] 힙과 최소 힙, 최대 힙 개념 및 구현 본문
힙
완전 이진트리 형태의 최대, 최솟값을 빠르게 찾아내는데 유용한 자료구조
부모 노드의 key가 자식 노드의 key보다 작거나 같은 완전 이진트리
부모 노드의 key가 자식 노드의 key보다 크거나 같은 완전 이진트리
JAVA로 힙 구현하기
우선순위 큐인 PriorityQueue를 통해 구현할 수 있다.
최대 힙은 내림차순 정렬이어야 하므로, Collections.reverseOrder 옵션을 추가해서 사용한다.
PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
예제 문제
https://www.acmicpc.net/problem/11279
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
참고링크
https://innovation123.tistory.com/111
https://codegym.cc/ko/groups/posts/ko.382.javaui-choedae-hib