본문으로 건너뛰기
김신건의 로그

Priority Queue / Heap: 우선순위 큐

· 수정 · 📖 약 1분 · 176자/단어 #algorithm #data-structure #heap #priority-queue
Priority Queue / Heap, Priority Queue, Heap, 우선순위 큐, 힙, binary heap

정의

Priority Queue 는 우선순위가 가장 높은 원소를 O(log N) 에 pop 할 수 있는 자료구조입니다. Binary Heap 이 표준 구현.

Max-heap: 부모 >= 자식. Min-heap: 부모 <= 자식.

연산:

  • push: O(log N)
  • top/pop: O(1) / O(log N)
  • build_heap: O(N) (heapify)

배열 표현

노드 i 의 부모 = (i-1)/2, 자식 = 2i+1, 2i+2.

priority_queue<int> pq;              // max-heap
priority_queue<int, vector<int>, greater<>> mn;  // min-heap

응용

변형

  • Fibonacci Heap: decrease-key O(1) amortized, 실전 상수 커서 잘 안 씀
  • Pairing Heap: 구현 단순, 실전 성능 양호
  • Binomial Heap: merge 가 O(log N)

참고

이 글의 용어 (3개)
다익스트라 알고리즘 (Dijkstra's Algorithm)algorithm
정의 다익스트라 알고리즘 (Dijkstra's Algorithm) 은 음이 아닌 가중치 그래프에서 단일 시작점 s 로부터 모든 정점까지의 최단 거리를 찾는 그리디 알고리즘. Ed…
Median of Stream: 두 힙으로 중앙값 유지algorithm
정의 스트림으로 들어오는 정수의 중앙값을 O(log N) 에 유지하는 문제. 두 힙 트릭 - Max-heap : 아래 절반 - Min-heap : 위 절반 - 크기 차 <= 1 …
Top K Selection: 상위 K개 원소algorithm
정의 배열 또는 스트림에서 상위 K 개 원소를 뽑는 문제. 접근 방법 1. 정렬 후 자르기 O(N log N). K 가 작을 때 낭비 심함. 2. Min-Heap (크기 K) O…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기