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

2021. 3. 25. 03:29·Computer Science/Algorithm
728x90

 

우선순위 큐(Priority Queue)


일반적인 큐는 조건 없는 FIFO(First-In-First-Out) 구조이지만,

우선순위 큐(Priority Queue)는 우선순위에 따라 특별한 순서로 원소를 추출하는 것이다

이진 힙 자료구조로 구현한다

 

 

힙 (Heap)


레코드는 배열에 저장하며,

모든 노드는 부모의 값이 자식 값보다 크다(또는 작다)는 동일한 규칙을 따르는 자료 구조

완전 이진 트리(complete binary tree)를 기본으로 한다

💡 이진 트리 : codesyun.tistory.com/112

 

[Algorithm] 트리 (Tree), 이진 트리(Binary tree)

트리 (Tree) 계층형 자료 구조 트리의 최상위 원소를 루트(root)라고 하고, 나머지 모든 원소는 부모 원소가 있고 0개 이상의 자식 원소를 가진다 자식 노드가 없는 노드는 리프 노드(leaf node)라고 한

codesyun.tistory.com

 

 

힙의 유형


1. 최대 힙(Max heap) : 각 노드의 값은 자식 노드의 값 이상

2. 최소 힙(Min heap) : 각 노드의 값은 자식 노드의 값 이하

 

 

힙의 특징


- 데이터에서 최댓값, 최솟값을 하나씩 가져올 때 유용한 구조

- 힙 정렬은 힙을 사용해 오름차순 또는 내림차순으로 데이터를 정렬한다

 

 

힙의 API

API (Appication Programming Interface)


- Insert(k)

    * 힙에 새 원소 k를 추가

    * 시간 복잡도는 O(logn)

 

- Remove()

    * 최대 힙일 때 최대값을, 최소 힙일 때 최솟값을 추출

    * 시간 복잡도는 O(logn)

 

- Heapify()

    * 숫자 배열을 힙으로 변환

    * 시간 복잡도는 O(n)

 

 

 

💡 자료 구조 : codesyun.tistory.com/106

 

[Algorithm] 자료 구조(Data Structure) 란?

자료 구조(Data Structure) - 데이터의 구체적 표현이며, 데이터를 프로그래머 관점에서 정의한다 - 데이터를 메모리에 저장하는 방법을 나타낸다 - 문제 유형에 따라 최적의 자료 구조를 선택해야

codesyun.tistory.com

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Computer Science > Algorithm' 카테고리의 다른 글

[Algorithm] 자료구조 - 해시 테이블 (Hash table)  (0) 2021.03.25
[Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)  (0) 2021.03.25
[Algorithm] 자료구조 - 큐 (Queue)  (0) 2021.03.25
[Algorithm] 자료구조 - 스택 (Stack)  (0) 2021.03.25
[Algorithm] 자료구조 - 연결 리스트 (Linked list)  (0) 2021.03.25
'Computer Science/Algorithm' 카테고리의 다른 글
  • [Algorithm] 자료구조 - 해시 테이블 (Hash table)
  • [Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)
  • [Algorithm] 자료구조 - 큐 (Queue)
  • [Algorithm] 자료구조 - 스택 (Stack)
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    github
    BOJ
    VS Code
    자료구조
    db
    clean code
    codeup
    JavaScript
    알고리즘
    Programmers
    java
    HTML
    웹
    aws
    CSS
    단계별로 풀어보기
    Python
    web
    myBatis
    git
    CodeUp 기초 100제
    spring
    oracle
    SourceTree
    c++
    MySQL
    Tistory
    C
    Cloud
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Algorithm] 자료구조 - 힙(Heap)과 우선순위 큐(Priority Queue)
상단으로

티스토리툴바