[javascript] 힙 (Heap) 데이터 구조

힙(Heap)은 데이터를 저장하고 조작하기 위한 트리 기반의 자료 구조입니다. 힙은 주로 우선순위 큐와 힙 정렬 알고리즘에서 사용됩니다.

종류

주로 사용되는 두 가지 종류의 힙이 있습니다:

  1. 최대 힙 (Max Heap): 부모 노드의 값이 자식 노드보다 크거나 같은 완전 이진 트리
  2. 최소 힙 (Min Heap): 부모 노드의 값이 자식 노드보다 작거나 같은 완전 이진 트리

주요 동작

힙은 다음과 같은 주요 동작을 포함합니다:

활용

힙은 주로 우선순위 큐(priority queue) 자료 구조에서 사용됩니다. 또한, 힙은 힙 정렬(Heap Sort) 알고리즘의 핵심 구성 요소이기도 합니다.

힙은 최대/최소값에 빠른 접근이 가능하며, 정렬되지 않은 데이터를 정렬 상태로 유지하면서 원소를 추가하거나 삭제하는 데 효율적으로 사용될 수 있습니다.

결과

힙을 사용하면 효율적인 우선순위 큐정렬 알고리즘을 구현할 수 있습니다.

이러한 특징으로 인해, 힙은 실제 응용 프로그램에서도 널리 사용되며, 많은 언어 및 라이브러리에서 기본 제공됩니다.

참고 자료