일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- IF
- 변수
- 데이터
- Scanner class
- 배열
- 반복문
- for
- 백준
- 파이썬프로그래밍기초
- java
- 자바
- 유비쿼터스
- 자료구조
- MySQL
- 백준알고리즘
- java프로그래밍
- 하드웨어
- Spring
- 알고리즘
- Scanner
- 스캐너클래스
- 1차원배열
- FOR문
- 스캐너
- C언어
- error
- IFELSE
- 기본
- 함수
- IF문
Archives
- Today
- Total
정리하고기록하자
힙(Heap) 본문
반응형
힙 ( Heap )
힙이란 완전이진트리의 형태로 만들어진 자료구조 이다.
*이진트리란 컴퓨터 응용에서 가장 많이 활용되는 트리구조이다.
힙의 종류
- 최대 힙 : ( 완전 이진 트리 ) + ( 부모 노드 > 자식 노드 )
최대 힙은 완전 이진 트리이면서 부모 노드가 자식 노드보다 큰 트리를 말한다.
- 최소 힙 : ( 완전 이진 트리 ) + ( 부모 노드 < 자식 노드 )
최소 힙은 완전 이진 트리이면서 부모 노드가 자식 노드보다 작은 크리를 말한다.
*보통 힙이라고 하면 일반적으로 최대 힙을 의미한다.
힙의 활용
힙은 최댓값 혹은 최솟값을 빠르게 찾아내기 유리한 자료구조이다.
1. 우선순위 큐를 구현할 때 쓰이기도 한다.
2. 허프만 코드를 구현할 때도 쓰이기도 한다.
3. 힙 정렬을 구현 할 때도 쓰인다.
* 허프만 코드 : 데이터를 효율적으로 압축하는데 사용하는 방법 ( 탐욕 알고리즘 중 하나 )
힙 삽입
힙을 만들기 위해서는 값 삽입 > 힙 구조 변경 > 값 삽입 > 힙 구조 변경 .... 반복
https://todaycode.tistory.com/56
힙 코드
public void init() throws IOException{
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
System.out.println("최소 힙");
runHeapTest(minHeap);
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
System.out.println("최대 힙");
runHeapTest(maxHeap);
}
private void runHeapTest(PriorityQueue<Integer> heap) {
heap.add(1);
heap.add(8);
heap.add(5);
heap.add(2);
heap.add(3);
while(!heap.isEmpty()) {
System.out.println(heap.poll());
}
}
반응형
'Data Structure' 카테고리의 다른 글
HashTable VS HashMap (0) | 2022.05.22 |
---|---|
HashMap (0) | 2022.05.21 |
해쉬 테이블 ( HashTable ) (1) | 2022.04.16 |
트리 (Tree) (0) | 2022.04.07 |
큐(Queue) (2) | 2022.04.02 |