본문 바로가기

알고리즘

[자료구조/Java] 자바 Heap 사용 방법

728x90
반응형

자료구조 Heap?

https://velog.io/@humblechoi/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%ED%8A%B8%EB%A6%AC%EC%99%80-%ED%9E%99

완전이진트리의 일종이다. 우선순위 큐를 위해 만들어진 자료구조이다.

루트의 위치하는 값이 최대 혹은 최소값이 된다.

 

Java 에서 Heap 사용하기

Java에서는 Heap Collection 이 없다. 최소힙, 최대힙을 구하기 위해 ProrityQueue 를 사용하면된다.

// 최소힙 (PriorityQueue 그대로 사용)
PriorityQueue<Integer> minHeap = new PriorityQueue<>();

// 최대힙 (Comparator로 정렬해서 사용)
PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
			return o2-o1;
        }
    });

최소힙은 그대로, 최대힙은 정렬해서 사용한다.

 

 

참고

[자료구조] 트리와 힙

자바에서 Heap 사용하는 방법

728x90
반응형