Hash & Graph

Hash

Hash는 데이터를 고정된 크기의 해시 값으로 변환하는 방식입니다. 해시 함수(Hash Function)를 사용해 입력 데이터를 고유한 인덱스 값으로 변환한 후, 이를 바탕으로 데이터를 저장하거나 검색하는 자료 구조가 해시 테이블(Hash Table)입니다.

  • 특징: 해시 테이블은 키-값 쌍을 저장하며, 검색, 삽입, 삭제 연산에서 평균적으로 O(1)의 시간 복잡도를 가집니다.
  • 활용 예: 데이터베이스에서 인덱스를 구성하거나, 블록체인 트랜잭션 검증에 활용됩니다.

Graph

Graph는 정점(Vertex)간선(Edge)으로 이루어진 자료 구조입니다. 그래프는 여러 개의 정점들이 간선으로 연결된 구조로, 복잡한 관계나 네트워크를 표현할 때 유용합니다.

  • 인접 리스트(Adjacency List): 각 정점에 연결된 정점들의 리스트로 그래프를 표현하는 방식입니다. 메모리 사용이 효율적이지만, 특정 간선을 탐색할 때 시간이 더 걸릴 수 있습니다.
  • 특징: 그래프는 방향 그래프(Directed Graph)와 무방향 그래프(Undirected Graph)로 나뉘며, 주로 네트워크, 소셜 그래프, 최단 경로 알고리즘 등에서 사용됩니다.
  • 활용 예: 네트워크 라우팅, 지도에서 최단 경로 탐색, 소셜 네트워크 분석 등에서 널리 사용됩니다.

Hash는 빠른 데이터 검색에, Graph는 복잡한 관계를 모델링하는 데 매우 효과적인 자료 구조입니다.