일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Python
- LeetCode
- 그레이들
- vscode
- Algorithm
- Data Structure
- Redux
- Javascript
- react
- BFS
- 자바
- CS
- 프로그래머스
- Graph
- DFS
- 알고리즘
- Database
- git
- 동적 계획법
- 백준
- 리트코드
- frontend
- db
- network
- TypeScript
- 안드로이드
- java
- DP
- 다이나믹 프로그래밍
- VIM
Archives
- Today
- Total
늘 겸손하게
자료구조 - Heap 본문
자료구조 heap 은 완전 이진트리를 기반으로 하는 자료 구조입니다.
많은 값들 중에서 최소 혹은 최대 값을 빠르게 찾는것이 가능한 자료 구조입니다.
일반적으로 힙은 두 가지 타입이 존재합니다.
1. Max-Heap
Max-Heap의 루트 노드 값은 모든 자식 노드의 노드 값보다 커야 합니다. 이러한 속성은 모든 하위 트리도 만족해야 합니다.
2. Min-Heap
Min-Heap의 루트 노드 값은 모든 자식 노드의 노드 값보다 작아야 합니다. 이러한 속성은 모든 하위 트리도 만족해야 합니다.
왜 힙을 쓰나요?
최대값 및 최솟값을 찾아내는 작업의 시간복잡도는 O(logN)으로 매우 빠릅니다.
새로운 원소를 저장하고 정렬하는데의 시간복잡도 또한 O(logN)으로 매우 빠릅니다.
그러므로 많은 데이터를 빠르게 저장하고 원하는 데이터를 빠르게 읽고 늘 정렬된 상태로 저장해 두려할때 많이 쓰이는 자료구조입니다.
'Algorithm' 카테고리의 다른 글
기초 알고리즘 요약 (0) | 2022.05.13 |
---|---|
자료구조 - Priority Queue ( 우선순위 큐 ) (0) | 2022.02.09 |
Depth First Search for a Graph - 그래프 깊이-우선 탐색 (0) | 2021.10.01 |
Breadth First Search for a Graph - 그래프 넓이-우선탐색 (0) | 2021.09.30 |
Graph 이론에서 그래프 (0) | 2021.09.28 |