본문 바로가기
공부/파이썬

[자료구조]해시(HASH)란?

by 남오공 2022. 6. 17.
728x90

해시란 무엇인가?

  • 데이터를 다루는 방법 중의 하나로써 검색과 저장이 파이썬의 키(KEY)와 밸류(VALUE)와 비슷하게 활용되며 KEY를 활용하여 값에 직접적으로 접근이 가능한 구조로, 평균 시간복잡도가 O(1)으로 빠른 기법이다.
  • 속도가 빠를 수 있는 이유를 위 그림으로 이해해보자.
  • 해시 테이블을 사용하지 않은 데이터 뭉치라면 필요한 값을 찾기 위해서는 배열의 데이터 값을 처음부터 하나하나 둘러보게 되는데
    위의 그림처럼 해시 함수를 적용한 테이블을 사용한 형태를 사용하게 된다면 key값에 해시를 적용해 고유한 인텍스를 통해 데이터를 한번만 검색하면 되기 때문이다.

해시함수는 무엇인가?

  • 위의 그림처럼 키를 해시테이블 내의 버킷(=hashes=해시값)으로 매핑 시키는것
  • 입력값의 형태는 다양하고(보통 문자열 입력값을 받는다) 출력값의 형태는 숫자(정수형)이다.

 

 

댓글