Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- GROOUPING SETS
- 윈도우11인터넷없이설치
- adsp공부방법
- 분할정복법
- windows11install
- 프로세스에연결
- 비밀번호
- 윈도우11네트워크없이설치
- 상태공간트리
- 알고리즘
- 코딩테스트
- 선택정렬
- It
- SQLD
- 톰캣버전확인
- mssql프로시저검색
- mssql호환성수준확인
- 삽입정렬
- 독학
- SQL
- 예제
- mssql호환성수준
- it자격증추천
- mssql함수검색
- 순환
- windows11setup
- 코테
- w3wp.exe
- 호환성수준변경
- sql튜닝
Archives
- Today
- Total
404 not found
우선순위 큐(Priority Queue) 본문
우선순위 큐(Priority Queue)
: 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조
1) 리스트를 이용하여 구현
2) 힙(heap)을 이용하여 구현(단순히 N개의 데이터를 힙에 넣었다가 모두 꺼내는 작업은 정렬과 동일)
: 완전 이진 트리 자료구조
: 항상 루트노드를 제거한다
최소힙 - 루트노드가 가장 작은 값을 가진다 / 값이 작은 데이터가 우선적으로 제거
최대힙 - 루트노드가 가장 큰 값을 가진다 / 값이 큰 데이터가 우선적으로 제거
* 완전 이진 트리
: 루트 노드부터 시작하여 왼쪽 자식노드, 오른쪽 자식노드 순서대로데이터가 차례로 삽입되는 트리
* 최소 힙 구성 함수
: 부모 노드로 거슬러 올라가며, 부모다 값이 더 작은 경우에 위치를 교체
Python
import sys
import heapq #기본은 최소힙이다.
input = sys.stdin.readline
def heapsort(iterable):
h = []
result = []
#모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, value)
#힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for i range (len(h)):
result.append(heapq.heappop(h))
return result
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
res = heapsort(arr)
for i in range(n):
print(res[i])
'자료구조 > 코딩테스트 정리' 카테고리의 다른 글
퀵 정렬과 계수 정렬 (0) | 2021.10.19 |
---|---|
정렬알고리즘 (0) | 2021.10.19 |
트리자료구조 (0) | 2021.10.11 |
스텍과 큐 (0) | 2021.10.05 |
1. 객체지향프로그래밍(OOP) 개념 (0) | 2021.09.14 |
Comments