코테 공부
힙(heap) 알고리즘
애둥
2022. 9. 28. 16:00
힙(heap)
-
완전 이진 트리
-
데이터 내에서 최솟값 및 최댓값을 찾아내는 연산을 빠르게 하기 위해 고안된 알고리즘
-
우선순위 큐를 위하여 만들어진 자료구조 (우선순위 큐?)
-
중복 허용
-
반정렬 상태 (느슨한 정렬 상태)를 유지함(부모노드의 값이 자식노드의 값보다 항상 크다/작다)
-
힙의 종류
-
가장 높은(혹은 가장 낮은) 우선순위를 가지는 노드가 항상 뿌리(root)노드에 오게 된다.이를 응용하여 우선순위 큐와 같은 추상적 자료형을 구현
복잡도
-
시간복잡도 = O(log2 n)
- 삽입, 삭제의 시간복잡도는 O(1)이나,
heapify 하는 과정이 O(log2 n) - heapify 과정에서 최대로 많은 연산 횟수를 한다면, 트리의 높이(레벨) 만큼 연산하기 때문에
O(log2 n)
References
https://ko.wikipedia.org/wiki/%ED%9E%99_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0)
힙 (자료 구조) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 1부터 100까지의 정수를 저장한 최대 힙의 예시. 모든 부모노드들이 그 자식노드들보다 큰 값을 가진다. 힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게
ko.wikipedia.org