cs/자료구조 3

Priority Queue(우선순위 큐)

우선순위 큐(Priority Queue)란?우선순위 큐(Priority Queue)는 각 요소가 특정 우선순위를 가지며, 가장 높은 우선순위를 가진 요소가 먼저 처리되는 자료 구조입니다. 일반적인 큐(First In, First Out)와는 달리, 요소가 삽입된 순서와 관계없이 우선순위에 따라 요소를 꺼냅니다. 우선순위 큐의 특징정렬된 요소 접근:기본적으로 최소 힙(Min-Heap) 구조를 사용하여 오름차순으로 요소를 정렬합니다.요소를 꺼낼 때마다 현재 큐에서 가장 작은 값이 반환됩니다.시간 복잡도:삽입(offer) 및 제거(poll) 연산: O(log⁡n)최댓값 또는 최솟값 조회(peek): O(1)구현 방식:내부적으로 이진 힙(Binary Heap)을 기반으로 동작합니다. 우선순위 큐기본 우선순위 큐..

cs/자료구조 2024.11.22

HashMap (해시맵)

1. HashMap이란?HashMap은 키-값 쌍으로 데이터를 저장하는 자료 구조입니다. 키(Key)는 고유하며, 같은 키로 두 번 데이터를 넣으면 기존 값이 새로운 값으로 덮어쓰입니다.Java의 HashMap은 해시 테이블(Hash Table)을 기반으로 구현되며, 해싱을 사용하여 키와 값의 위치를 빠르게 찾아갈 수 있습니다. HashMap은 내부에서 배열과 연결 리스트(그리고 Java 8부터는 트리)를 혼합하여 데이터를 저장하며, null 키와 null 값을 허용하는 특징이 있습니다. 2. HashMap의 기본 동작 원리HashMap의 핵심은 해싱(Hashing)이라는 개념에 있습니다. 해싱은 키를 해시 함수에 넣어 정수로 변환하고, 이 값을 기반으로 특정 위치에 값을 저장하는 방식입니다. HashM..

cs/자료구조 2024.11.01

Graph (그래프)

그래프(Graph)는 정점(Vertex)과 간선(Edge)으로 구성된 자료 구조로, 여러 데이터 요소들 간의 연결 관계를 표현하는 데 매우 유용합니다. 이를 통해 연결된 데이터를 효율적으로 관리하거나 탐색할 수 있습니다. 그래프는 여러 분야에서 응용되며, 특히 네트워크, 지도, 소셜 미디어 등에서 흔히 사용됩니다.1. 그래프의 기본 용어정점(Vertex): 그래프에서 데이터를 담고 있는 개체입니다. 정점은 보통 노드(Node)라고도 부릅니다.간선(Edge): 정점 간의 연결을 나타내는 선입니다. 간선은 방향이 있는지에 따라 유향 그래프(Directed Graph)와 무향 그래프(Undirected Graph)로 나뉩니다.인접 리스트(Adjacency List): 정점마다 연결된 정점들을 리스트로 표현하는..

cs/자료구조 2024.10.15