logo

해싱이란 무엇입니까?

해싱 해시 함수라고 알려진 수학 공식을 사용하여 가변 크기의 입력에서 고정 크기의 출력을 생성하는 프로세스를 나타냅니다. 이 기술은 데이터 구조에서 항목 저장을 위한 인덱스 또는 위치를 결정합니다.

해싱 데이터 구조 - techcodeview.com



해시 데이터 구조의 필요성

인터넷상의 데이터 양은 매일 기하급수적으로 증가하고 있어 모든 데이터를 효과적으로 저장하기가 어렵습니다. 일상적인 프로그래밍에서 이 데이터의 양은 그다지 크지 않을 수 있지만 여전히 쉽고 효율적으로 저장, 액세스 및 처리되어야 합니다. 이러한 목적으로 사용되는 매우 일반적인 데이터 구조는 배열 데이터 구조입니다.

이제 Array가 이미 거기에 있었다면 새로운 데이터 구조가 필요했는지에 대한 질문이 생깁니다! 이에 대한 답은 효율성이라는 단어에 있습니다. 배열에 저장하는 데 시간이 걸리지만 오(1) 시간, 검색에는 최소한 시간이 걸립니다. O(로그 n) 시간. 이 시간은 짧은 것처럼 보이지만 큰 데이터 세트의 경우 많은 문제가 발생할 수 있으며 이로 인해 Array 데이터 구조가 비효율적입니다.

이제 우리는 일정한 시간 내에 데이터를 저장하고 검색할 수 있는 데이터 구조를 찾고 있습니다. 오(1) 시간. 이것이 해싱 데이터 구조가 작동하는 방식입니다. Hash 데이터 구조의 도입으로 이제 데이터를 일정한 시간에 쉽게 저장하고, 일정한 시간에 검색하는 것도 가능해졌습니다.



해싱의 구성 요소

해싱에는 크게 세 가지 구성 요소가 있습니다.

  1. 열쇠: 열쇠 해시 함수(데이터 구조에서 항목 저장을 위한 인덱스 또는 위치를 결정하는 기술)의 입력으로 제공되는 문자열 또는 정수는 무엇이든 될 수 있습니다.
  2. 해시 함수: 그만큼 해시 함수 입력 키를 받고 해시 테이블이라는 배열에 있는 요소의 인덱스를 반환합니다. 지수는 다음과 같이 알려져 있습니다. 해시 인덱스 .
  3. 해시 테이블: 해시 테이블은 해시 함수라는 특수 함수를 사용하여 키를 값에 매핑하는 데이터 구조입니다. 해시는 각 데이터 값이 고유한 인덱스를 갖는 배열에 연관 방식으로 데이터를 저장합니다.
해싱의 구성 요소

해싱의 구성 요소

충돌이란 무엇입니까?

해싱 프로세스는 큰 키에 대해 작은 숫자를 생성하므로 두 키가 동일한 값을 생성할 가능성이 있습니다. 새로 삽입된 키가 이미 점유된 키에 매핑되고 일부 충돌 처리 기술을 사용하여 처리해야 하는 상황입니다.



해싱의 충돌

해싱의 충돌

데이터 구조에서 해싱의 장점

  • 키-값 지원: 해싱은 키-값 데이터 구조를 구현하는 데 이상적입니다.
  • 빠른 데이터 검색: 해싱을 사용하면 일정한 시간의 복잡성을 갖는 요소에 빠르게 액세스할 수 있습니다.
  • 능률: 삽입, 삭제, 검색 작업은 매우 효율적입니다.
  • 메모리 사용량 감소: 해싱은 요소를 저장하기 위해 고정된 공간을 할당하므로 메모리가 덜 필요합니다.
  • 확장성: 해싱은 대규모 데이터 세트에서 잘 작동하여 일정한 액세스 시간을 유지합니다.
  • 보안 및 암호화: 해싱은 안전한 데이터 저장과 무결성 검증을 위해 필수적입니다.

해싱에 대해 자세히 알아보려면 다음을 참조하세요. 해싱 소개 – 데이터 구조 및 알고리즘 자습서