Python heapq 모듈

ewillwin·2023년 7월 16일
0

아무거나

목록 보기
19/23
  • heapq 모듈을 사용하여 list를 heap처럼 사용할 수 있음
  • 새로운 데이터가 추가되어도 항상 정렬 상태를 유지해야 하는 상황 또는 이미 정렬되어 있는 리스트에 새 원소를 추가하는 경우에 사용함
  • python의 heapq 모듈을 사용하여 기본적으로 최소 힙을 구현할 수 있음
  • 삽입, 제거의 시간복잡도는 O(logN)

최소 힙

import heapq

heap = []
heapq.heappush(heap, 4)
heapq.heappush(heap, 3)
heapq.heappush(heap, 5)
heapq.heappush(heap, 1)
heapq.heappush(heap, 2)

for _ in range(5):
	print(heapq.heappop(heap))
  • 위의 코드를 실행하면, 작은 값부터 출력됨을 확인할 수 있음

최대 힙

import heapq

heap = []
heapq.heappush(heap, -4)
heapq.heappush(heap, -3)
heapq.heappush(heap, -5)
heapq.heappush(heap, -1)
heapq.heappush(heap, -2)

for _ in range(5):
	print(-heapq.heappop(heap))
  • 위의 코드를 실행하면, 큰 값부터 출력됨을 확인할 수 있음
profile
Software Engineer @ LG Electronics

0개의 댓글