본문 바로가기
IT 컴퓨터상식

해시테이블 뜻

by 변화마스터 2020. 10. 23.
반응형

컴퓨터분야에서 해시테이블이란 레코드를 한 개 이상 보관하는 버킷들의 집합을 의미합니다.
이는 데이터가 저장되는 버킷들의 배열로 만들어지며, 한 버킷은 하나 이상의 레코드를 수용할 수 있다고 합니다.
해시 테이블은 키를 값에 매핑할 수 있는 구조인 연관, 배열, 추상 데이터 유형을 구현하는 데이터 구조입니다. 
해시 테이블은 해시 함수를 사용하여 해시 코드라고도 하는 인덱스를 통하여 원하는 값을 찾을 수 있는 버킷 또는 슬롯의 배열로 계산합니다. 
조회하는 동안 키는 해시되고 나온 해시는 해당 값이 저장되는 위치를 나타냅니다.

이상적으로는 해시 함수가 각 키를 고유한 버킷에 할당하지만 대부분의 해시 테이블 디자인은 해시 함수가 둘 이상의 키에 대해 동일한 인덱스를 생성하는 해시 충돌을 일으킬 수있는 불완전한 해시 함수를 사용합니다. 
이러한 충돌은 일반적으로 어떤 방식으로든 수용됩니다.


차원이 잘 지정된 해시 테이블에서 각 조회의 평균 값 (명령어 수)은 테이블에 저장된 요소 수와 무관합니다. 
많은 해시 테이블 디자인은 또한 작업 당 일정한 평균 값으로 키-값 쌍의 임의 삽입 및 삭제를 허용합니다. 
많은 상황에서 해시 테이블은 검색 트리나 다른 테이블 조회 구조보다 보통 더 효율적이라고 알려져 있습니다. 
이러한 이유로 이들은 특히 연관 배열, 데이터베이스 인덱싱, 캐시 및 세트와 같은 여러 종류의 컴퓨터 소프트웨어에서 널리 사용됩니다.
다른 테이블 데이터 구조에 비해 해시 테이블의 주요 장점은 속도입니다. 
이 장점은 항목 수가 많을 때 더욱 분명해집니다. 
해시 테이블은 최대 항목 수를 미리 예측할 수있을 때 특히 효율적이므로 버킷 배열을 최적의 크기로 한 번 할당하고 크기를 조정할 수 없습니다.


키-값 쌍 집합이 고정되고 미리 알려지면 (삽입 및 삭제가 허용되지 않음) 해시 함수, 버킷 테이블 크기 및 내부 데이터 구조를 신중하게 선택하여 평균 조회 비용을 줄일 수 있습니다. 
특히 충돌이 없거나 완벽한 해시 함수를 고안 할 수 있습니다. 
이 경우 키를 테이블에 저장할 필요가 없습니다.

반응형