1. 우선순위 큐(Priority Queue)
우선순위가 가장 높은 순서대로 추출된다.
* 큐(Queue) : 선입선출(FIFO), 가장 먼저 삽입된 데이터가 가장 먼저 추출된다.
2. 힙(Heap)
데이터에서 최대값과 최소값을 가장 빠르게 찾을 수 있도록 만들어진 이진 트리
최대값을 구하기 위한 구조(최대힙, Max Heap), 최소값을 구하기 위한 구조(최소 힙, Min Heap)로 분류 가능
3. 우선순위 큐 / 힙
우선순위 큐를 구현할 때는 시간 복잡도 측면에서 힙을 이용하는 것이 훨씬 효율적이다.
4. 파이썬에서 제공하는 라이브러리
우선순위큐 라이브러리
from queue import PriorityQueue
pq = PriorityQueue() # 우선순위 큐 생성
pq = PriorityQueue(maxsize=10) # 최대 크기를 10인 우선순위큐
pq.put((1,'a'))
pq.put((0,'b')) # 원소 추가
print(pq.get()) # 출력 : (0, 'b') -> 추출되며 큐에서 삭제됨
print(pq.qsize()) # 출력 : 1
힙큐 라이브러리
import heapq
arr = []
heapq.heappush(arr,3) # 힙 원소 추가
heapq.heappush(arr,1)
heapq.heappush(arr,2)
print(arr) # 출력 : [1, 3, 2]
heapq.heappop(arr)
print(arr) # 출력 : [2, 3]
arr2 = [10,2,7,11]
heapq.heapify(arr2) # 배열을 힙으로 변경
print(arr2) # 출력 : [2, 10, 7, 11]
'Python' 카테고리의 다른 글
[파이썬] 2차원 리스트(배열) - 곱하기 or 리스트컴프리헨션 (0) | 2023.06.07 |
---|---|
[Anaconda/jupyter notebook] 아나콘다/주피터 노트북 설치 (0) | 2023.03.05 |
[PyCharm] 파이참 설치 및 프로젝트 생성 (0) | 2023.03.05 |
파이썬(Python) 개발 환경 툴 차이 (0) | 2023.02.24 |