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
- 코드업 기초100제 파이썬
- 코드업 기초100
- 코드업 기초100제 파이썬 답
- Vue.js
- codeup 알고리즘
- Linked List
- 자료구조 해시테이블
- 파이썬 가상환경
- 자료구조 링크드리스트
- Codeup
- codeup python
- 링크드리스트
- python 가상환경 설정
- hash table
- 자료구조 해시
- 코드업 기초100제
- 코드업
- codeup 파이썬
- 가상환경 패키지
- 자료구조
- Python
- 코드업 파이썬
- 가상환경 설정하기
- react
- 코드업 파이썬 기초
- python 가상환경
- 코드업 파이썬 100제
- 해시테이블
- react state
- codeup python 기초100제
Archives
- Today
- Total
zuchive
해시테이블(Hash Table) 2 본문
https://zuha.tistory.com/entry/해시테이블HashTable1
해시 테이블 (Hash Table) 1
해시라는 기능을 확장한 여러 가지 함수들이나 알고리즘들이 있다. 이런 해시 기능을 기반으로 하여 만들어진 것이 블록체인이다. 1. 해시 구조 Hash Table : 키(Key)에 데이터(Value)를 저장하는 데이
zuha.tistory.com
4. 자료 구조 해시 테이블의 장단점과 주요 용도
장점
- 데이터 저장/읽기 속도가 많이 빠르다. (검색 속도가 빠르다.)
- 해시는 키에 대한 데이터가 있는지(중복) 확인이 쉽다.
단점
- 일반적으로 저장공간이 좀 더 많이 필요하다.
- 여러 키에 해당하는 주소가 동일할 경우 충돌을 해결하기 위한 별도 자료구조가 필요하다.
주요 용도
- 검색이 많이 필요한 경우
- 저장, 삭제, 읽기가 빈번한 경우
- 캐시 구현 시 (중복 확인이 쉽기 때문에)
5. 프로그래밍 연습
연습 1 : 리스트 변수를 활용해서 해시 테이블 구현해보기
1. 해시 함수 : key % 8
2. 해시 키 생성 : hash(data)
hash_table = list([0 for i in range(8)])
# 해시 키 생성
def get_key(data):
return hash(data)
# 해시 함수
def hash_function(key):
return key % 8
def save_data(data, value):
hash_address = hash_function(get_key(data))
hash_table[hash_address] = value
def read_data(data):
hash_address = hash_function(get_key(data))
return hash_table[hash_address]
save_data('Dave', '0102030200')
save_data('Andy', '01033232200')
read_data('Dave')
hash_table
hash라는 내장 함수를 거쳐온 데이터 키의 키를 8로 나눈 나머지 값을 가지고 저장 위치를 판단함.
'코딩테스트 > 자료구조' 카테고리의 다른 글
해시테이블(Hash Table) 4 (1) | 2022.09.05 |
---|---|
해시테이블(Hash Table) 3 (0) | 2022.07.12 |
해시 테이블 (Hash Table) 1 (0) | 2022.07.10 |
시간 복잡도 1 (0) | 2022.07.09 |
링크드 리스트(Linked list) 4 (0) | 2022.07.08 |
Comments