우선순위 큐(Priority Queue)
일반적인 큐는 조건 없는 FIFO(First-In-First-Out) 구조이지만,
우선순위 큐(Priority Queue)는 우선순위에 따라 특별한 순서로 원소를 추출하는 것이다
이진 힙 자료구조로 구현한다
힙 (Heap)
레코드는 배열에 저장하며,
모든 노드는 부모의 값이 자식 값보다 크다(또는 작다)는 동일한 규칙을 따르는 자료 구조
완전 이진 트리(complete binary tree)를 기본으로 한다
💡 이진 트리 : codesyun.tistory.com/112
[Algorithm] 트리 (Tree), 이진 트리(Binary tree)
트리 (Tree) 계층형 자료 구조 트리의 최상위 원소를 루트(root)라고 하고, 나머지 모든 원소는 부모 원소가 있고 0개 이상의 자식 원소를 가진다 자식 노드가 없는 노드는 리프 노드(leaf node)라고 한
codesyun.tistory.com
힙의 유형
1. 최대 힙(Max heap) : 각 노드의 값은 자식 노드의 값 이상
2. 최소 힙(Min heap) : 각 노드의 값은 자식 노드의 값 이하
힙의 특징
- 데이터에서 최댓값, 최솟값을 하나씩 가져올 때 유용한 구조
- 힙 정렬은 힙을 사용해 오름차순 또는 내림차순으로 데이터를 정렬한다
힙의 API
API (Appication Programming Interface)
- Insert(k)
* 힙에 새 원소 k를 추가
* 시간 복잡도는 O(logn)
- Remove()
* 최대 힙일 때 최대값을, 최소 힙일 때 최솟값을 추출
* 시간 복잡도는 O(logn)
- Heapify()
* 숫자 배열을 힙으로 변환
* 시간 복잡도는 O(n)
💡 자료 구조 : codesyun.tistory.com/106
[Algorithm] 자료 구조(Data Structure) 란?
자료 구조(Data Structure) - 데이터의 구체적 표현이며, 데이터를 프로그래머 관점에서 정의한다 - 데이터를 메모리에 저장하는 방법을 나타낸다 - 문제 유형에 따라 최적의 자료 구조를 선택해야
codesyun.tistory.com
'Computer Science > Algorithm' 카테고리의 다른 글
[Algorithm] 자료구조 - 해시 테이블 (Hash table) (0) | 2021.03.25 |
---|---|
[Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree) (0) | 2021.03.25 |
[Algorithm] 자료구조 - 큐 (Queue) (0) | 2021.03.25 |
[Algorithm] 자료구조 - 스택 (Stack) (0) | 2021.03.25 |
[Algorithm] 자료구조 - 연결 리스트 (Linked list) (0) | 2021.03.25 |