Heap 이란?
우선순위큐를 위해 고안된 완전이진트리 형태의 자료구조, 여러값 중 최대/최소값을 빠르게 찾아내도록 만들어진 자료구조.
▶ 완전 이진트리 : 노드가 왼쪽부터 채워지는 형태
Heap의 종류
데이터 삽입
2. 최대힙에 저장
- 삽입되는 값을 상위 부모노드와 비교하여 더 클 경우 위로 swap
데이터 삭제
최소/최대힙의 가장 최상위 노드가 결국 최소값, 최대값이 되며, 힙 자료구조는 최소/최대값을 알아내는것이 목표임
따라서, 데이터를 삭제하면 최소/최대값이 삭제된다.
시간 복잡도 O(logN)
최악의 상황은 가장 root노드와 비교까지 할 경우이다. 이 경우는 모든 트리의 경우를 다 비교하는것이다.
참고 사이트
https://currygamedev.tistory.com/20
https://st-lab.tistory.com/205
자바 [JAVA] - 배열을 이용한 Heap (힙) 구현하기
자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중
st-lab.tistory.com
[자료구조] 힙(Heap)과 우선순위 큐(Priority Queue)
🔻이진 트리(Binary Tree) 먼저 힙에 대해 알아보기전에 이진트리에 대해서 간단히 알아보도록 하겠다. 왜냐하면 힙이 이진 트리로 구현되는 자료구조이기 때문이다. 이진 트리란 한 노드가 최대
currygamedev.tistory.com
[ 자료구조 ] 해쉬 (Hash) (0) | 2024.03.16 |
---|---|
[ 자료구조 ] 스택 & 큐 (Stack & Queue) (0) | 2024.03.14 |
시간 복잡도 (Time complexity) (1) | 2024.03.09 |