설명
heapq 모듈은 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조
python에서 제공하는 heapq는 min-heap (최소힙)을 기본으로 제공한다.
ex) [70,50,80,50] -> [50,50,80,70]이 된다.
알고리즘 문제를 풀다보면 단순 List의 append, pop을 사용하다가 시간초과(효율성검사)되는 경우가 발생..
그럴때, heapq를 쓰면 시간복잡도가 나아지는지 효율성검사 통과하게됨.
사용법
선언
import heapq
List -> heap 변경
import heapq
a = [1,2,3]
heapq.heapify(a)
heap push, pop
import heapq
heapq.heappush(1,a) # push 1 , [1,2,3] -> [1,1,2,3]
heapq.heappop(a) # pop [1,1,2,3] -> [1,2,3]
heapq가 기존 list append, pop 보다 왜 속도면에서 빠른지 궁금했다.
heapq에 대해 세부적인 동작방식이 궁금하다면 아래 링크를 보면 heapq.py source code를 볼 수 있다.
Click
반응형
'Language > Python' 카테고리의 다른 글
python list, dictionary comprehension (0) | 2020.03.18 |
---|---|
windows10에서 virtualenv 설치 및 작동방법 (0) | 2020.03.18 |
python collections (0) | 2020.02.03 |
python dict value 순서로 정렬하기 (0) | 2020.02.03 |
python permutations (0) | 2020.01.30 |