[Algorithm] 자료구조 - 해시 테이블 (Hash table)

2021. 3. 25. 04:39·Computer Science/Algorithm
728x90

 

해시 테이블 (Hash table)


키(key)에 값(value)을 매핑하는 자료 구조

- 해시 테이블의 각 위치는 슬롯(slot)이라고 한다

- 해시 함수(hash function)로 배열의 인덱스를 계산한다

- 실제 저장된 키의 개수가 가능한 키의 개수보다 적을 때 해시 테이블을 사용

- 해시 테이블은 배열의 개념을 일반화한다

- 딕셔너리를 구현하는 데 유용한 자료 구조

 

 

 

해시 함수로 데이터를 저장하는 과정


1. 데이터를 저장할 크기 M인 배열을 생성, 이 배열을 해시 테이블이라 한다

2. 해시 함수로 키의 해시 코드를 찾는다

3. 해시 코드를 해시 테이블의 크기로 나눈 나머지를 구해 데이터를 저장할 인덱스로 사용

4. 데이터를 지정된 인덱스에 저장

 

 

 

해시 테이블에서 해시 함수로 데이터를 찾는 과정


1. 해시 함수로 검색 중인 키의 해시 코드를 찾는다

2. 해시 코드를 해시 테이블의 크기로 나눈 나머지를 구해 저장된 데이터의 인덱스를 구한다

3. 지정된 인덱스에서 값을 검색

 

 

 

해시 테이블의 API와 시간 복잡도

API (Application Programming Interface)


- Insert(x) : x를 데이터 세트에 추가

- Delete(x) : 데이터 세트에서 x를 삭제

- Search(x) : 데이터 세트에서 x를 검색

> 해시 테이블에서 원소를 찾는 데 걸리는 평균 시간은 O(1) : 검색 성능이 뛰어남

 

 

 

 

💡 자료 구조 : codesyun.tistory.com/106

 

[Algorithm] 자료 구조(Data Structure) 란?

자료 구조(Data Structure) - 데이터의 구체적 표현이며, 데이터를 프로그래머 관점에서 정의한다 - 데이터를 메모리에 저장하는 방법을 나타낸다 - 문제 유형에 따라 최적의 자료 구조를 선택해야

codesyun.tistory.com

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Computer Science > Algorithm' 카테고리의 다른 글

[Algorithm] 내가 보려고 정리하는 '이것이 취업을 위한 코딩 테스트다'  (0) 2021.09.01
[Algorithm] 자료구조 - 그래프 (Graph)  (0) 2021.03.25
[Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)  (0) 2021.03.25
[Algorithm] 자료구조 - 힙(Heap)과 우선순위 큐(Priority Queue)  (0) 2021.03.25
[Algorithm] 자료구조 - 큐 (Queue)  (0) 2021.03.25
'Computer Science/Algorithm' 카테고리의 다른 글
  • [Algorithm] 내가 보려고 정리하는 '이것이 취업을 위한 코딩 테스트다'
  • [Algorithm] 자료구조 - 그래프 (Graph)
  • [Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)
  • [Algorithm] 자료구조 - 힙(Heap)과 우선순위 큐(Priority Queue)
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    HTML
    db
    web
    java
    JavaScript
    Programmers
    CodeUp 기초 100제
    github
    알고리즘
    자료구조
    clean code
    oracle
    VS Code
    Tistory
    myBatis
    aws
    spring
    codeup
    BOJ
    Python
    Cloud
    단계별로 풀어보기
    SourceTree
    CSS
    c++
    C
    웹
    git
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Algorithm] 자료구조 - 해시 테이블 (Hash table)
상단으로

티스토리툴바