[자료구조] 힙(Heap)과 우선순위 큐(Priority Queue)

2021. 8. 7. 01:14·알고리즘/자료구조
728x90

힙(Heap)이란?

힙은 완전 이진트리의 일종으로, 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 자료구조이다.

최댓값 및 최솟값에서 알 수 있겠지만, 힙의 종류로는 최대 힙과 최소 힙이 있다.

 

  • 최대 힙

부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진트리이다.

루트값이 가장 큰 값(최댓값)을 갖는다.

 

  • 최소 힙

부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진트리이다.

루트값이 가장 작은 값(최솟값)을 갖는다.

 

우선순위 큐란?

큐(Queue)라고 되어 있어서 일반적인 큐와 동일하게 FIFO(First-In-First-Out)방식의 자료구조를 생각할 수도 있겠지만, 우선순위 큐는 큐와는 전혀 다른 자료구조이다.

우선순위라는 말 그대로, 우선순위 큐에 있는 요소들간에 우선순위를 매겨서 우선순위가 가장 높은 요소부터 선출하는 방식을 우선순위 큐라고 한다.(반대로 우선순위가 낮으면 마지막에 선출된다.)

 

일반적으로 힙을 이용하여 구현할 수 있다.

'알고리즘 > 자료구조' 카테고리의 다른 글

트라이(Trie)의 개념과 활용  (0) 2022.02.15
그래프의 탐색(DFS, BFS)  (0) 2021.09.02
그래프에 대해서 알아보자  (0) 2021.09.02
HashMap에 대해서 알아보자  (0) 2021.08.23
비트마스크(BitMask)에 대해서 알아보자  (0) 2021.08.08
'알고리즘/자료구조' 카테고리의 다른 글
  • 그래프의 탐색(DFS, BFS)
  • 그래프에 대해서 알아보자
  • HashMap에 대해서 알아보자
  • 비트마스크(BitMask)에 대해서 알아보자
kkap999
kkap999
IT에 관심 가득한 갑갑이의 개발&스터디 블로그
  • kkap999
    갑갑이의 개발세상
    kkap999
    • 분류 전체보기 (95)
      • Backend (1)
        • Java&Spring&Servlet (8)
        • DB (0)
      • 알고리즘 (78)
        • 문제풀이 (70)
        • 자료구조 (6)
        • 그 외 (2)
      • App&FE (3)
        • FE (1)
        • Flutter (2)
      • Computer Science (0)
        • 네트워크 (0)
        • 컴퓨터기초 (0)
      • Cloud (0)
        • AWS (0)
        • Azure (0)
        • gcp (0)
      • 잡담&일상 (4)
        • 일상 (1)
        • 잡담 (2)
        • 음악 (1)
  • 태그

    BOJ
    BOJ15649
    백준
    N과M(1)
    알고리즘
  • 링크

    • github
  • 인기 글

  • 최근 글

  • 07-03 10:25
  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
kkap999
[자료구조] 힙(Heap)과 우선순위 큐(Priority Queue)
상단으로

티스토리툴바