티스토리 뷰
Binary Heap(이진 힙)은 Complete Binary Tree 형식의 자료구조입니다.
Complete Binary Tree는 배열에 기반하고 있기 때문에 random access가 가능합니다.
Complete Binary Tree에 대한 설명은 아래 게시물을 참고해주세요.
http://dvpzeekke.tistory.com/m/45
Heap에는 Max Heap, Min Heap 두 종류가 있습니다.
Max Heap은 각 노드의 값이 children의 값보다 크거나 작은 Complete Binary Tree입니다.
Min Heap은 각 노드의 값이 children의 값보다 작거나 같은 Complete Binary Tree입니다.
Max Heap에서는 root 노드에 있는 값이 가장 크므로, 최댓값을 찾는데에 소요되는 time complextity가 O(1)입니다.
Min Heap에서는 root 노드에 있는 값이 가장 작으므로 최솟값을 찾는데에 소요되는 time complexity가 O(1)입니다.
하지만 만약, Max Heap에서 최댓값을 제거하는 과정을 거친다면 O(log n)의 time complexity가 소요됩니다.
Max Heap에서 root 노드를 제거하면, 다시 Max Heap 구조를 유지하기 위한 과정이 필요하기 때문입니다.
먼저 맨 마지막 노드를 root 노드로 대체하고, heapify 과정을 거쳐서 구조를 유지합니다.
마찬가지로, Min Heap에서 최솟값을 제거하는 과정을 거친다면 O(log n)의 time complexity가 O(1)입니다.
'Dev.Basic > 자료구조' 카테고리의 다른 글
BST(Binary Search Tree, 이진 탐색 트리) (4) | 2019.10.12 |
---|---|
Tree(트리) (0) | 2019.10.12 |
Stack(스택) & Queue(큐) (14) | 2019.10.10 |
Array(배열) VS LinkedList(연결 리스트) (0) | 2019.10.10 |
- Total
- Today
- Yesterday
- 시뮬레이션
- 삼성역량테스트
- 스위프트
- count
- c++
- 프로그래머스
- 호제법
- BFS
- Xcode
- Collection
- isempty
- algorithm
- 깊이우선탐색
- 서머코딩
- 백준
- aws
- Swift
- SummerCoding
- ec2
- Programmers
- 이진트리
- dp
- 컬렉션
- dfs
- 구슬탈출
- 코딩테스트
- ios
- datastructure
- 알고리즘
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |