해싱은 유사한 개체 그룹에서 특정 개체를 고유하게 식별하는 데 사용되는 기술입니다. 해시가 우리 삶에서 사용되는 방법의 몇 가지 예는 다음과 같습니다 : 당신은 void ht_set (hashtable_t * 해시 테이블, char * 키, char *value) 함수를 조금 더 간단하게 만들 수 있습니다. 현재 논리는 시도 : 이 두 예에서 학생들과 책은 고유 번호로 해시되었다. 해시 함수 H(x)가 배열의 인덱스 x%10의 값을 매핑하도록 합니다. 예를 들어 값 목록이 [11,12,13,14,15]인 경우 배열 또는 해시 테이블의 {1,2,3,4,5} 위치에 저장됩니다. 이것은 C로 작성된 간단한 키-값 쌍 해시 테이블이며 FNV-1을 기본 해시 알고리즘으로 사용합니다. 나는 “해시 테이블”이 ht_get 및 ht_set에서 NULL로 체크 되어 있어야한다고 생각합니다. 분할 방법은 m이 소수일 때 가장 잘 작동하며, 키의 규칙성은 해시 값에서 클러스터링을 생성할 수 있습니다. 예를 들어 m이 256이면 어떻게 되는지 생각해 보십시오. 그러나 나머지 컴퓨팅은 상대적으로 느린 작업이므로 해시 함수를 빠르게 계산하는 것은 어려울 수 있습니다. 해시 테이블은 일반적으로 키가 값에 매핑되는 사전 데이터 형식을 구현하는 데 사용되지만 배열과 달리 키는 정수 0, 1, 2, …

사전 데이터 형식은 AWK, 펄, 파이썬, PHP, Lua 또는 Ruby와 같은 스크립팅 언어에서 흔히 볼 수 있는 기본 데이터 구조입니다. 예를 들어, 배열과 같은 구문을 사용하여 액세스 한 사전의 사용을 보여 주는 일부 Python 코드는 다음과 같습니다. 간단한 해시 함수를 사용하고, 선형 프로빙(열린 주소 지정 전략)을 사용하여 충돌이 해결되고 해시 테이블의 크기가 일정합니다. 이 예제에서는 해싱 기술의 기본 을 명확하게 보여 줍니다. 안녕하세요! 당신의 예를 주셔서 감사합니다! 난 그냥 C를 배우기 시작해요. 당신은 소리 메모리의 정화에 대한 적절한 예를 쓸 수 있습니까? 그리고 프로그램 중에 할당 된 모든 메모리가 완료 된 후에 지워졌는지 어떻게 확인할 수 있습니까? 감사! C에서는 사전 조회에 []를 다시 사용할 수 있는 편리함은 없지만(이를 위해 C++가 필요함) 함수를 사용하여 더 많은 타이핑을 통해 동일한 효과를 얻을 수 있습니다. 예를 들어 C에서 추상 사전을 사용하면 다음과 같이 보일 수 있습니다. 예를 들어 사전을 검색하는 구조체 배열로 구현할 수 있지만 최악의 경우 키를 찾는 데 O(n) 시간이 많이 듭니다. 이 페이지는 말 그대로 `C의 해시 테이블`에 대한 첫 번째 Google 결과입니다.

당신은 당신의 마커가 그것을 모르는 생각하십니까? 사실, 나는 실제로 표절의 증거인 예제 코드로 마커에게 넘겨 진 것을 보았습니다. 그것은 몇 가지 매우 독특한 버그를 가지고 있으며, 코드 유사성 테스트의 dumbest을 통과하지 않습니다. 당신의 유일한 희망은 누구든지이 관심을 지불하지 않고 자동 표절 탐지 도구를 사용하지 않는 것입니다. @Liron24 해시 테이블에서 검색 작업을 https://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs,10fefb6e0ae510dd 이러한 줄을 따라 뭔가 O(1)여야 합니다. 이 구현에서는 O(n)입니다.