[알고리즘/자료구조] 힙(Heap)

2025. 7. 25. 11:28·Algorithm/이론
반응형

 

📒 힙(heap)

  • 완전 이진 트리(Complete Binary Tree)
  • 최소 힙: 부모 노드의 키 값이 자식 노드의 키 값보다 항상 작은 힙 (루트가 가장 작음)
  • 최대 힙: 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 힙 (루트가 가장 큼)

https://www.geeksforgeeks.org/heap-data-structure/

 

📒 힙 자료구조 구현

  • heapq 모듈 이용
    • heapq.heappush(heap, item): item을 heap에 추가
    • heapq.heappop(heap): heap에서 가장 작은 원소를 pop
      • return 하지 않고 접근만 하려면 인덱스로 접근
    • heapq.heapify(x): 리스트 x를 즉각적으로 heap으로 변환함

 

✏️ heapq 모듈을 이용하여 최소 힙 구현

  • heapq 모듈은 기본적으로 최소 힙으로 구현되어 있음
import heapq

heap = []
heapq.heappush(heap, 50)
heapq.heappush(heap, 10)
heapq.heappush(heap, 20)

print(heap)

# 출력 결과: [10, 50, 20]

 

✏️ heapq 모듈 이용하여 최대 힙 구현

  • y = -x 변환을 하면 최솟값 정렬이 최댓값 정렬로 바뀜
import heapq

heap_items = [1,3,5,7,9]

max_heap = []
for item in heap_items:
  heapq.heappush(max_heap, (-item, item))

print(max_heap)

# 출력 결과: [(-9, 9), (-7, 7), (-3, 3), (-1, 1), (-5, 5)]

 


 

[참고]

 

[Python] 힙 자료구조 / 힙큐(heapq) / 파이썬에서 heapq 모듈 사용하기

힙은 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. 힙 property : A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대

littlefoxdiary.tistory.com

 

 

자료구조 - 우선순위 큐(Priority Queue)와 힙(heap)

컴퓨터/IT/알고리즘 정리 블로그

chanhuiseok.github.io

 

반응형

'Algorithm > 이론' 카테고리의 다른 글

[알고리즘] 재귀(Recursion)  (0) 2024.11.11
[알고리즘] 분할 정복 알고리즘(Divide-and-Conquer)  (0) 2022.02.24
[알고리즘] 자료구조 총정리 : 배열, 연결 리스트, 스택, 큐, 트리, 그래프  (0) 2022.02.24
알고리즘을 배우기 위한 준비  (0) 2022.02.24
'Algorithm/이론' 카테고리의 다른 글
  • [알고리즘] 재귀(Recursion)
  • [알고리즘] 분할 정복 알고리즘(Divide-and-Conquer)
  • [알고리즘] 자료구조 총정리 : 배열, 연결 리스트, 스택, 큐, 트리, 그래프
  • 알고리즘을 배우기 위한 준비
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (196) N
      • SSAFY (10)
      • Algorithm (114) N
        • 이론 (6)
        • 백준 (BOJ) (107) N
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (6)
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    html5
    재귀
    Next.js
    SSAFYcial
    순열
    수학
    구현
    React
    DP
    SSAFY
    파이썬
    중복순열
    싸피
    bfs
    오블완
    백준
    Heap
    힙
    백트래킹
    dfs
    Algorithm
    우선순위큐
    중복조합
    Error
    블록체인
    강의
    브루트포스
    티스토리챌린지
    알고리즘
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[알고리즘/자료구조] 힙(Heap)
상단으로

티스토리툴바