자료구조 힙과 우선순위 큐

우선순위 기반 데이터 처리를 위한 힙(Heap)우선순위 큐를 정리한다.

힙(Heap) 구조 분석

힙은 부모-자식 노드 간 대소 관계를 유지하는 완전 이진 트리이다.

[ 최대 힙(Max Heap) 구조 ]
      [ 90 ] (루트: 최댓값)
      /    \
   [ 80 ]  [ 70 ]
   /   \    /
[ 50 ][ 60 ][ 40 ]
  • 최대 힙: 부모 노드가 자식 노드보다 크거나 같다.
    루트에 최댓값이 위치한다.

  • 최소 힙: 부모 노드가 자식 노드보다 작거나 같다.
    루트에 최솟값이 위치한다.

데이터 삽입 및 삭제 시 힙 구조 유지 복잡도는 O(log N)이다.

우선순위 큐(Priority Queue)

데이터 입력 순서와 무관하게 우선순위가 높은 데이터를 먼저 배출한다.

힙을 통해 효율적으로 구현 가능하다.

  • 삽입: 종단 노드 추가 후 부모와 비교하며 위치를 조정한다.
  • 삭제: 루트 노드 추출 후 종단 노드를 루트로 이동시켜 재정렬을 수행한다.

힙은 프로세스 스케줄링 등 우선순위 제어가 필요한 시스템에서 성능적 이점을 제공하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts