Hash Table

It stores key-value pairs with fast access but collisions may occur.

해시 데이터 구조(hash data structure)는 키(key)와 값(value)을 저장하기 위한 자료 구조입니다. 해시 데이터 구조는 키와 값의 쌍을 연관 배열로 저장하며, 키를 사용하여 값에 빠르게 접근할 수 있습니다.

해시 데이터 구조는 키를 해시 함수(hash function)에 적용하여 고유한 인덱스를 생성하고, 이 인덱스를 사용하여 값을 저장하고 검색합니다. 해시 함수는 입력된 키를 고정된 길이의 해시 값으로 변환하는 함수입니다. 이 해시 값은 일반적으로 배열의 인덱스와 같은 형태로 사용됩니다. 해시 함수는 일반적으로 입력된 키에 대해 고유한 해시 값을 반환하도록 설계되어 있습니다.

해시 데이터 구조는 매우 빠른 검색 속도를 제공합니다. 일반적으로 해시 함수는 입력된 키에 대해 고유한 해시 값을 반환하므로, 이를 사용하여 값을 저장하고 검색할 때 별다른 탐색 작업 없이 빠르게 값을 찾을 수 있습니다.

하지만 해시 함수가 충돌을 일으키는 경우도 있습니다. 두 개 이상의 키가 동일한 해시 값으로 매핑되는 경우를 충돌이라고 합니다. 이러한 충돌을 처리하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 연결 리스트를 사용하여 충돌을 처리하는 것입니다. 이 방법은 같은 해시 값에 매핑되는 키들을 하나의 연결 리스트에 저장합니다.

해시 데이터 구조는 해시 테이블(hash table)이라는 배열을 사용하여 구현할 수 있습니다. 이러한 해시 테이블은 일반적으로 고정된 크기를 가지며, 충돌이 발생할 경우 연결 리스트를 사용하여 저장합니다. 해시 데이터 구조는 검색 작업에 매우 빠르며, 대부분의 언어에서 제공되는 표준 라이브러리에서 제공됩니다.

hash table (or hash map)

hash function

hash collision

hash collision을 해결하는 방법