Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터 분석
- eda
- Oracle ASSM
- Linux
- BFS
- 랜덤포레스트
- 추천시스템
- airflow 정리
- Decision Tree
- Spark Data Read
- Collaborative filtering
- 데이터분석
- 배깅
- Spark 튜닝
- git init
- SQL
- CF
- 통계분석
- 네트워크
- Spark jdbc parallel read
- git stash
- 리눅스 환경변수
- 의사결정나무
- Oracle 논리적 저장 구조
- 알고리즘
- 오라클 데이터 처리방식
- enq: FB - contention
- Python
- 앙상블
- git 기본명령어
Archives
- Today
- Total
[Alex] 데이터 장인의 블로그
[자료구조] Heap 본문
힙(Heap)
'완전' 이진트리를 기초로 하는 자료구조. 마지막을 제외한 모든 노드에서 자식들이 꽉 채워진 이진트리.
- 최대값 혹은 최소값을 빠르게 찾기 위한 이진트리
- 우선 순위 큐를 위하여 만들어진 자료구조 (우선순위 큐: 우선순위의 개념을 큐에 도입한 자료 구조)
- 우선순위 큐는 배열, 연결리스트, 힙 으로 구현이 가능하다. 이 중에서 힙(heap)으로 구현하는 것이 가장 효율적이다.
시간복잡도
- 삽입 : logN
- 삭제 : logN
최대 힙(max heap)
- 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리
- key(부모 노드) >= key(자식 노드)
최소 힙(min heap)
- 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리
- key(부모 노드) <= key(자식 노드)
힙(heap) 표현방식, 구현
힙을 저장하는 표준적인 자료구조는 배열이다.
구현을 쉽게 하기 위하여 배열의 첫 번째 인덱스인 0은 사용되지 않는다.
힙에서의 부모 노드와 자식 노드의 관계
- 왼쪽 자식의 인덱스 = (부모의 인덱스) * 2
- 오른쪽 자식의 인덱스 = (부모의 인덱스) * 2 + 1
- 부모의 인덱스 = (자식의 인덱스) / 2
반응형
'자료구조' 카테고리의 다른 글
[자료구조] 이진 탐색 트리, 해시 검색 방법 정리 (0) | 2022.05.24 |
---|---|
[자료구조] 스택과 큐 (0) | 2022.05.01 |
Comments