티스토리 뷰

Algorithm

힙 알고리즘

CodingTrader 2021. 6. 2. 21:48
728x90

힙은 모든 부모노드가 자식보다 같거나 작은 값을 갖는 완전 이진트리 이다.

최대 힙은 자식의 키 값보다 크거나 같은 값을 가지고, 최소 힙은 자식의 키 값보다 작거나 같은 값을 가진다.

 

모든 K에 대하여 heap[k] <-- heap[2*k +1], heap[k] <-- heap[2*k + 2]인 배열로 표현 할 수 있고,

존재하지 않는 요소는 무한대로 간주하며, 힙의 가장 작은 요소는 heap[0]이다.

 

2075번 문제를 풀면서 썻던 python의 heapq에 대해서

heappush는 힙의 불변성을 유지하면서 item 값을 heap에 넣어주는 함수이고,

heappop은 힙의 불변성을 유지하면서 가장 작은 값을 반환 해주는 함수인데, heap이 비어있으면 IndexError 가 발생한다. pop 없이 가장 작은 항목에 엑세스 하려면 heap[0]을 사용해도 된다.

 

 

 

출처: https://docs.python.org/ko/3/library/heapq.html

728x90

'Algorithm' 카테고리의 다른 글

백준 1874번 스택 수열  (0) 2021.06.09
스택(Stack), 큐(Queue), 덱 (Deque)  (0) 2021.06.05
백준 2075번 N번째 큰 수  (0) 2021.05.31
이진 탐색 알고리즘  (0) 2021.05.29
그리드 알고리즘  (0) 2021.04.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/12   »
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
글 보관함
250x250