본문 바로가기
카테고리 없음

해시테이블과 해싱함수에 대해서

by kangs' tong 2023. 12. 10.

해시테이블과 해싱함수

해시테이블

해시테이블은 데이터를 저장하고 검색하기 위한 자료구조로, 키(key)와 값(value)의 쌍으로 이루어진 데이터를 저장하는 구조를 말합니다. 해시테이블은 키를 해시함수를 사용하여 배열의 인덱스로 변환하고, 해당 인덱스에 값을 저장합니다. 이를 통해 데이터를 빠르게 검색할 수 있습니다.

해싱함수

해싱함수는 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 변환해주는 함수로, 해시함수의 입력은 키(key)이고, 출력은 해시값(hash value)입니다. 해시함수는 입력값이 같으면 항상 같은 해시값을 출력하도록 설계되어야 합니다. 또한, 입력값이 조금이라도 다르면 출력값이 완전히 다르게 나와야 합니다. 해싱함수는 해시테이블에서 키를 인덱스로 변환하는 역할을 담당합니다.

예시

아래는 해시테이블과 해싱함수의 동작을 이해하기 위한 예시입니다.

# 해싱함수 정의
def hash_function(key):
    return key % 10

# 해시테이블 생성
hash_table = [0] * 10

# 데이터 저장
def store_data(data, value):
    key = hash_function(data)
    hash_table[key] = value

# 데이터 검색
def search_data(data):
    key = hash_function(data)
    return hash_table[key]

# 데이터 저장 및 검색 예시
store_data(5, "apple")
store_data(3, "banana")

print(search_data(5)) # 출력: apple
print(search_data(3)) # 출력: banana

해싱함수 hash_function은 키를 10으로 나눈 나머지를 반환하도록 정의되었습니다. 이후, store_data 함수를 통해 데이터를 저장하고 search_data 함수를 통해 데이터를 검색하는 과정을 보여주고 있습니다.

결론

해시테이블과 해싱함수는 데이터를 빠르게 저장하고 검색하기 위한 자료구조와 함수입니다. 해시테이블은 키와 값을 저장하고, 해싱함수는 키를 인덱스로 변환하는 역할을 수행합니다. 이를 통해 데이터 검색 속도가 효율적으로 이루어질 수 있습니다.

댓글