Tags
- Vue
- delete
- DB
- N:1
- Tree
- regexp
- outer join
- create
- drf
- count
- 이진트리
- distinct
- 그리디
- 뷰
- update
- M:N
- 완전검색
- stack
- 스택
- 트리
- Django
- 쟝고
- ORM
- SQL
- 통계학
- 백트래킹
- Article & User
- migrations
- 큐
- Queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
Heapify 본문
Heapify
"힙 속성을 유지하도록 트리를 정리하는 과정"
- 최대 힙(Max Heap) → 부모 노드가 항상 자식보다 크거나 같아야 함
- 최소 힙(Min Heap) → 부모 노드가 항상 자식보다 작거나 같아야 함
- Heapify 과정이 있어야 힙이 유지되고, 힙 정렬이 가능함
Heapify의 역할
- 힙이 깨졌을 때(힙 속성이 위반될 때) 이를 복구하는 과정
- 최대 힙에서는 부모보다 큰 자식이 있으면 Swap → 힙 속성을 유지
- 최소 힙에서는 부모보다 작은 자식이 있으면 Swap → 힙 속성을 유지
- 완전 이진 트리(Complete Binary Tree) 형태를 유지하면서 실행
Heapify의 시간복잡도
- 힙의 높이(트리 깊이)만큼 Swap이 필요 → O(log n)
- 완전 이진 트리 구조이므로 높이는 log n 수준으로 유지됨
- 따라서 Heapify의 시간복잡도는 O(log n)
'데이터 사이언스 > 알고리즘' 카테고리의 다른 글
선형 탐색(Linear Search) (0) | 2025.02.21 |
---|---|
퀵 정렬 vs 병합 정렬 vs 힙 정렬 (0) | 2025.02.20 |
완전 이진 트리 (Complete Binary Tree) (0) | 2025.02.18 |
힙 정렬 (Heap Sort) (0) | 2025.02.17 |
병합 정렬 (Merge Sort) (0) | 2025.02.16 |