Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- heap
- AVL 시간 복잡도
- 1764
- 백준 17471
- 백준 1406
- qorwns
- 백준 5397
- 백준 2447
- 해시구현
- c#
- 게리멘더링2
- Stack 이란
- ㅣ풀이
- 버킷 정렬
- 별 찍기 10
- 5397
- 해시 구현
- 백준 1158
- dfs
- C/C++ 구현
- 시간 복잡도
- 구현
- 조세퍼스 순열
- 스택의 특징
- 원판 돌리기
- 백준 17779
- 백준 17822
- 백준
- 자료구조
- 풀이
Archives
- Today
- Total
홍시홍의 프로그래밍
해싱(Hashing) 본문
해싱이란
해시 테이블을 이용한 탐색 기법
이론적으로 O(1)에 탐색가능
해시 함수 : 인덱스를 해시 주소로 바꿔주는 함수
해시 함수 조건
- 충돌이 적어야 한다
- 해시 주소가 고르게 분포되어야한다
- 계산이 빨라야 한다.
제산 함수 일 경우 소수로 나눈다
폴딩 이동 폴딩, 경계 폴딩
탐색키가 문자열일 경우 호너의 방법 사용
해싱은 충돌을 잘 처리해야 한다
충돌이 일어날 경우, 선형 조사법과 체이닝으로 해결
충돌 해결법 2가지
1. 오픈 어드레싱
2. 체이닝
오픈 어드레싱 종류 3가지
1. 선형 조사법
- h(k)+1 ,,,, +2 ,,,,+3 으로
2. 이중 조사법
- 제곱을 더함 h(k) +1^2,2^2,3^2식으로
3. 이중 해싱법
- 해시 2개 사용
- 첫번째 해시 kmod H 두번째 해시 P - (kmodP)
- H와 P는 서로수이여야 효과가 좋음
선형조사법
충돌이 일어날 경우, 뒤에 빈 해시테이블에 값을 넣어줌
군집화 해결을 위해서 이차 조사법, 이중 해싱법 를 사용
체이닝
충돌이 일어날 경우, 연결리스트를 사용하여 뒤에 넣어주는 방법
해시의 성능
적재 밀도에 따라 다르다
적재 밀도 = 저장된 항목의 개수 / 해싱 테이블의 버켓의 개수
참고 자료 : C언어로 쉽게 풀어쓴 자료구조
'자료구조' 카테고리의 다른 글
구간 트리(Segment tree) (0) | 2019.09.27 |
---|---|
이진 탐색 트리 (0) | 2019.09.27 |
AVL 균형 이진 탐색 트리(20200515 수정) (0) | 2019.09.25 |
트리란?(Tree) (0) | 2019.09.25 |
연결리스트(List - 종류/정의/시간 복잡도) (0) | 2019.09.24 |
Comments