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 |
Tags
- 정렬 알고리즘(sort algorithm)
- cs 공부)준비
- 면접(java
- GIT
- 코딩공부
- CS
- Til
- github
- 99클럽
- css
- 자바
- 코딩
- 메서드
- 항해99
- Grafana
- Java
- HTML
- Entity
- wil
- ArrayList
- 코딩테스트 준비
- 프로그래머스
- 이진 탐색(binary search)
- aop
- Spring
- 배열
- 개발자 취업
- 회고
- 자료구조
- 코딩문제
Archives
- Today
- Total
hayu's 개발 일지
99클럽 코테 스터디 31일차 TIL + 우선순위 큐(PriorityQueue)(1) 본문
학습 키워드
- 우선순위 큐(PriorityQueue)
공부한 내용
우선순위 큐(PriorityQueue)
- 큐 자료구조는 선입선출(FIFO) 방식이다.
- 우선순위 큐는 들어간 순서와 상관없이 높은 우선순위를 가진 원소가 먼저 나온다는 특징을 가진다.
- Heap을 이용하여 구현하는 것이 일반적이다.
- 데이터 추출 시, 루트 노드를 얻어 루트 노드를 삭제할 때는 빈 루트 노드 위치에 맨 마지막 노드를 삽입 후 아래 노드로 내려가면서 정렬하는 방식으로 진행된다.
- 숫자가 작을수록 먼저 나오는 큐를 최소힙(Min Heap)이라 하고,
- 숫자가 클수록 먼저 나오는 큐를 최대힙(Max Heap)이라고 한다.
우선순위 큐(Heap) 특징 및 시간 복잡도
특징
- 높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조이다.
- → 우선순위 큐에 들어가는 원소는 비교가 가능한 기준이 있어야 한다.
- 완전 이진트리 구조의 형태를 갖는다.
- 일반적으로 배열로 구현한다.
- 일종의 반 정렬 상태를 유지한다.(느슨한 정렬 상태)
- 우선순위를 중요시해야 하는 상황에 사용
우선순위 큐는 배열에 저장하되 삽입/ 추출 시 기존 정렬 상태를 유지하기에 O(logn)의 시간복잡도를 유지한다.
우선순위 큐의 특징
- 높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조이다.(큐에 들어가는 원소는 비교가 가능한 기준이 있어야함)
- 내부 요소는 힙으로 구성되어 이진트리 구조로 이루어져 있다.
- 내부구조가 힙으로 구성되어 있기에 시간 복잡도는 O(NLogN)이다.
- 일반적으로 배열로 구현한다.
- 일종의 반 정렬 상태를 유지한다. (느슨한 정렬 상태이다.)
회고
발생한 문제
- 자료구조 공부가 부족하다는 생각이 들었다.
해결 방법
- 우선순위 큐에 대해 공부했다.
참고 자료
- https://cobi-98.tistory.com/45
- https://coding-factory.tistory.com/603
'자료구조&알고리즘' 카테고리의 다른 글
99클럽 코테 스터디 33일차 TIL + Big-O 표기법(1) (0) | 2024.06.22 |
---|---|
99클럽 코테 스터디 32일차 TIL + 우선순위 큐(PriorityQueue)(2) (0) | 2024.06.21 |
99클럽 코테 스터디 30일차 TIL + Graph(2) (1) | 2024.06.19 |
99클럽 코테 스터디 29일차 TIL + Graph(1) (0) | 2024.06.18 |
99클럽 코테 스터디 28일차 TIL + Heap(2) (1) | 2024.06.17 |