map vs hash_map
map : 레드 블랙 트리
추가, 탐색, 삭제가 logN의 시간복잡도를 가짐
hash map(unordered_map)
추가, 탐색, 삭제가 1의 시간복잡도를 가짐
hash_map은 메모리를 내주고 속도를 취한다.
예를 들면 유저의 수대로 메모리에 공간을 만들어 거기에 데이터를 집어넣는 것이다.
이러한 방식을 테이블이라고 하고, 키를 알면 데이터를 바로 알아낼 수 있다.
그리고 해시는 보안 때문에 데이터를 임의의 값으로 바꾸는 것이다.
간혹 해시(키)값이 중복해서 충돌하는 문제가 발생하는데, 해결방법은 선형 조사법, 이차 조사법이 있다.
선형 조사법: 해시 키에 충돌하지 않을 때까지 1씩 더함
이차 조사법: 더 분산된 키를 넣는 방법으로 1^2, 2^2씩 더함
MMORPG처럼 데이터가 엄청 많을 경우 체이닝을 이용할 수 있다.
키당 한값만 넣는 것이 아니라 키 하나에 여러 값이 들어간 리스트 등이 들어가는 것이다.
'알고리즘' 카테고리의 다른 글
| [알고리즘] 최소 스패닝 트리 - 크루스칼(Kruskal) 알고리즘 (0) | 2022.07.11 |
|---|---|
| [알고리즘] 상호 배타적 집합 (Disjoint set), 유니온 파인드 (Union find) (0) | 2022.07.11 |
| [알고리즘] 힙 정렬, 병합 정렬 (0) | 2022.07.11 |
| [알고리즘] 레드 블랙 트리 - 2.삭제 (0) | 2022.07.10 |
| [알고리즘] 레드 블랙 트리 - 1.삽입 (0) | 2022.07.09 |