CS공부/학점은행_알고리즘

6-1 해시 테이블 개요

inji_ 2023. 7. 25. 19:55

1. 해시 테이블의 개념

   - 데이터를 한 번에 찾아줄 수 있는 개념

① 저장과 검색의 복잡도

   - 원소가 저장될 자리가 원소의 값에 의해 결정되는 자료구조

   - 저장된 자료와 비교하여 자리를 찾지 않고 단 한번의 계산으로 자신의 자리 찾음

   - 평균 O(1) 

 

② 해싱

  - 해시 함수를 이용하여 레코드가 저장되어 있는 주소를 직접 구하여 검색

  - 키를 비교하지 않고 계산에 의해 검색하는 방법

  - 매우 빠른 응답을 요하는 응용에 유용 ex) 주민등록 시스템

 

③ 해시 테이블 - 키값과 value 데이터 가진 구조

  - 최소 원소를 찾는 것과 같은 작업은 지원하지 않음.

  - 한 개 이상 보관하는 버킷들의 집합

  - 한 개의 버킷에는 하나 이상의 레코드 수용 가능

  - 키값을 해시 함수에 넣어서 계산하면 해시 테이블의 주소 값이 나오는데 계산된 값은 해시 값 또는 해시 주소라고 함.

 

  - 데이터를 "해시(잘게 부수고 다시 뭉침)"해서 테이블 내의 주소로 바꾸면 상수 시간 안에 탐색 가능.

2. 해시 함수

 해시 함수의 성질

   - 입력 원소가 해시 테이블에 골고루 저장되어야 함.

   - 계산이 간단해야 함.

   - 해시 테이블에 원소가 차있는 비율(적재율)은 해시 테이블의 성능에 매우 중요한 영향을 미침

   - 해시 테이블에 골고루 데이터가 존재해야 서로 다른 두 원소가 한 주소를 놓고 충돌할 확률이 작아짐  

② 해시 함수

  - 하나의 문자열을 보다 빨리 찾을 수 있도록 주소에 직접 접근할 수 있는 짧은 길이의 값이나 키로 변환하는 알고리즘을 수식으로 표현한 것

  - 주어진 키 값으로부터 레코드가 저장되어 있는 주소를 산출해 내는 수식

 

3. 해시 테이블의 충돌

① 충돌 : 해시 테이블의 한 주소를 놓고 두 개 이상의 원소가 자리를 다투는 것

    - 한 원소를 해싱하여 저장하려하는데 다른 원소가 이미 그 자리를 차지한 상황

② 해결 방법

    - 체이닝, 대방주소 방법

'CS공부 > 학점은행_알고리즘' 카테고리의 다른 글

9-2 오일러 사이클과 해밀턴 사이클  (0) 2023.08.15
9-1 그래프 개념  (0) 2023.08.15
5-2 B-트리  (0) 2023.07.19
5-1 레드 블랙 트리  (0) 2023.07.19
4-2 관계  (0) 2023.07.12