일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DFS
- git
- 알고리즘
- react
- Data Structure
- CS
- 자바
- LeetCode
- 다이나믹 프로그래밍
- DP
- 그레이들
- 프로그래머스
- Database
- 백준
- VIM
- db
- 동적 계획법
- BFS
- frontend
- network
- Graph
- java
- Python
- Javascript
- Algorithm
- TypeScript
- vscode
- 안드로이드
- 리트코드
- Redux
Archives
- Today
- Total
늘 겸손하게
CS - Data Structure - Hashing(해싱) 본문
Hashing
키(Key)값을 해시 함수(Hash Function)에 대입하여 나온 결과를 주소로 사용하여 값(value)에 접근하는 방법
Hash Function
키(Key)값을 값(Value)이 저장된 주소로 바꾸어주는 함수.
키(Key)값을 값(Value)이 저장된 주소로 바꾸는 일을 매핑(Mapping)이라고 한다.
장점
데이터의 탐색을 O(1)만에 가능하다.
데이터의 빠른 저장과 탐색이 필요할때 유용한 방법
해싱은 주로 '사전(dictionary)' 자료 구조를 구현할 때 사용
단점
단점으로는 메모리에 데이터가 순차적으로 저장되지 않아 메모리상에 빈 공간이 많이 생기는 메모리 낭비가 발생한다.
해시 함수는 중복이 발생 가능하다.
다른 키값을 입력했는데 같은 해시 값이 도출될 수 있다. 그래서 연산이 빠르고, 충돌이 적고, 고르게 분포되는 해시 함수가 좋은 함수로 평가받는다.
'Computer Science > Data Structure' 카테고리의 다른 글
CS - Data Structure - 이진탐색트리 (Binary Search Tree) (0) | 2022.09.15 |
---|---|
CS - Data Structure - Tree (트리) (0) | 2022.09.15 |
CS - Data Structure - Heap (힙) (0) | 2022.09.15 |
CS - Data Structure - 스택 (Stack) & 큐 (Queue) (0) | 2022.09.15 |
CS - Data Structure - Array, Linked List (0) | 2022.09.14 |