탐색을 위한 해시
해시 목적 : 탐색을 엄청나게 빨리 하기 위함 ⇒ 해시 값을 키로 이용하면
배열로 원하는 데이터에바로 접근할 수 있음
탐색 할때는 해시 함수 결과를 해시 주소(인덱스)로 해석
키 : 값의 개념으로 direct 접근
근데 충돌 무조건 발생함 -> 잘 관리하자
충돌관리
- 슬롯 여러개 관리 : 슬롯 만들어서 같은 해시주소에 여러개 저장가능하게!
- 선형 조사법 : 슬롯 오버플로나면 다른 해시 주소(바로 다음)에 저장 ⇒ 선형조사법
- 근데 이러면 군집화 현상 발생.
- 군집화 : 특정 지역에 키 값이 몰리는 현상(앞 찼네? 바로 뒤로.. 찼네?? 바로 뒤로..)
- 이차 조사법 : 키가 몰리는거 방지하기위해 다른 위치(4칸 뒤, 8칸 뒤..)로 점프해서 저장토록하면??? ⇒ 이차조사법
- 근데 이거 규칙 일정하면 또 2차 군집화 가능
- 이중 해싱 : 해시 함수 한번더!!! ⇒ 이중해싱
- 채이닝 : 슬롯을 연결리스트로 관리 (n의 시간복잡도)
'공부 > JUN STUDY' 카테고리의 다른 글
컴퓨터의 주소표현 (포인터의 크기 & 표현가능한 메모리 주소가 크면 좋은 이유) (0) | 2022.03.30 |
---|---|
WORD에 대해 (CPU가 한번에 다루는 데이터의 단위란?) (1) | 2022.03.30 |
패킷 손실과 딜레이 / 패킷 손실 4가지 원인 (packet loss, delay, 4 sources of packet delay) (0) | 2021.10.10 |
구문 VS 명령어 (Statement VS Instruction) 소스코드 어셈블리어 인간이 하이 레벨 언어를 쓰는 이유 (0) | 2021.09.14 |
컴파일 VS 인터프리터 (Compile VS Interpreter) (0) | 2021.09.14 |