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]을 사용해도 된다.
728x90