728x90
반응형
해시테이블(Hash Table) 완전 이해하기
이전 글에서는 연결 리스트(Linked List)에 대해 알아봤습니다.
이번에는 키(Key)와 값(Value) 쌍으로 데이터를 저장하는 해시테이블(Hash Table) 에 대해 자세히 정리해봅니다.
1. 해시테이블이란?
해시테이블은 데이터를 (키, 값) 쌍으로 저장하고, 키를 통해 값을 빠르게 검색할 수 있는 자료구조입니다.
- 키를 해시 함수(Hash Function)를 통해 인덱스로 변환하여 저장
- 검색, 삽입, 삭제 모두 평균적으로 매우 빠름 (O(1))
2. 해시테이블의 특징
항목 설명
접근 속도 | 평균 O(1) (매우 빠름) |
키 중복 여부 | 키는 고유해야 함 (같은 키 존재 불가) |
충돌 처리 | 체이닝(연결 리스트), 오픈 어드레싱 방식 등 사용 |
메모리 사용 | 배열보다 크지만 빠른 접근성 제공 |
3. 해시테이블 사용 예시 (C# 기준)
C#에서는 Dictionary<TKey, TValue> 클래스를 사용합니다.
선언과 초기화
using System.Collections.Generic;
Dictionary<string, int> scores = new Dictionary<string, int>();
요소 추가
scores.Add("Alice", 90);
scores.Add("Bob", 85);
scores["Charlie"] = 95; // 인덱서 방식 추가도 가능
값 검색
int aliceScore = scores["Alice"];
Console.WriteLine(aliceScore); // 90
키 존재 여부 확인
if (scores.ContainsKey("Dave"))
{
Console.WriteLine("Dave의 점수 존재함");
}
요소 삭제
scores.Remove("Bob");
전체 순회
foreach (var pair in scores)
{
Console.WriteLine($"{pair.Key}: {pair.Value}");
}
4. 실생활 예시로 이해하기
- 해시테이블 = 전화번호부
- 이름(키)을 알면 바로 전화번호(값)를 찾을 수 있음
- 해시테이블 = 학생 학번 조회 시스템
- 학번(키)으로 학생 정보를 빠르게 검색
5. 해시테이블의 활용 사례
사용 예시 설명
데이터베이스 인덱싱 | 빠른 검색을 위해 키-값 인덱스 사용 |
캐시(Cache) 시스템 | 이미 계산된 결과를 저장해 빠르게 접근 |
중복 체크 | 특정 값의 존재 여부를 빠르게 판단 |
이번 글에서는 해시테이블(Hash Table) 의 개념, 특징, C# 코드 사용법을 정리했습니다.
- 키를 통해 빠르게 값에 접근 가능
- 데이터 검색, 삽입, 삭제가 평균적으로 O(1)
- Dictionary 클래스를 통해 쉽게 구현 가능
728x90
반응형
'개발이야기' 카테고리의 다른 글
자료구조 시리즈 9편 (0) | 2025.04.22 |
---|---|
자료구조 시리즈 8편 (2) | 2025.04.22 |
자료구조 시리즈 6편 (2) | 2025.04.21 |
자료구조 시리즈 5편 (0) | 2025.04.21 |
자료구조 시리즈 4편 (0) | 2025.04.21 |