티스토리 뷰

PS/강의

9일차 강의 (21강)

Codecheck 2024. 2. 6. 23:07

해시 (21강)

해시함수 : 임의 길이의 데이터를 고정된 길이의 데이터로 대응시키는 함수

 

충돌문제 발생 (해시에 성능에 큰 영향)

 

충돌 회피 1 - Chaining

 

충돌 회피 2 - Open addressing

 

- Linear Probing

충돌 발생 시 오른쪽으로 1칸씩 이동하는 방식

장점 - Cache hit rate가 높다.

단점 - Clustering이 생겨 성능에 영향을 줄 수 있다.

 

- Quadratic probing

충돌 발생 시 오른쪽으로 1,3,5,... 칸씩 이동하는 방식

장점 - Cache hit rate가 나쁘지 않다, Clustering을 어느 정도 회피할 수 있다.

단점 - 해시 값이 같을 경우 여전히 Clustering이 발생한다.

 

- Double Hashing

충돌 발생 시 이동할 칸의 수를 새로운 해시 함수로 계산하는 방식

장점 - Clustering을 효과적으로 회피할 수 있다.

단점 - Cache hit rate가 낮다

 

unordered_set

원소들이 크기 순서 혹은 삽입한 순서로 위치해있지 않음 (순서 보장X)

 

unordered_multiset

원소들의 중복을 허용

※ 주의 : erase()하면 해당하는 모든 원소가 지워짐(중복된 것들)

→ 하나만 지우려면 ms.erase(ms.find(-10))과 같이 iterator 이용

 

unorderded_map

'PS > 강의' 카테고리의 다른 글

11일차 강의 (24 ~ 26강)  (0) 2024.02.08
10일차 강의 (22, 23강)  (0) 2024.02.07
8일차 강의 (20강)  (0) 2024.01.20
7일차 강의 (18 ~ 19강)  (0) 2024.01.19
6일차 강의 (16 ~ 17강)  (0) 2024.01.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/08   »
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
글 보관함