본문 바로가기

파일 처리론

extendible hashing(extendible hash/연장 해쉬/확장 해쉬) 정확히는 해싱(해슁)에 관한 글이지만 연장/확장 해쉬에 관한 개념을 잡기 위하여. I. 해슁의 개요 가. 해슁의 정의 - 여러개의 명칭(identifier)들이 무작위로 들어있는 테이블에서 특정 명칭을 찾고자 하는 경우 - Hashing 은 키 값에서 레코드가 저장되어 있는 주소를 직접 계산한 후 산출된 주소로 곧바로 접근이 가능하게 하는 방법. - 검색할 때 키 값을 비교하는 것이 아니라 계수적 성질을 이용, 계산에 의하여 주소를 결정하여 기억 공간에 레코드를 보관하거나 검색하는 방법 나. 해슁의 주요 개념 - 해쉬 함수(hash function) : 원하는 키값을 가지는 테이블 항목을 검색하기 위해 특정한 변환 함수 를 이용하여 키값을 항목 의 주소로 직접 바꿔서 검색하는 방법을 해슁이라 한다. 이때.. 더보기
해쉬 테이블 (해시 테이블/hash table) 완전정복+(Java) 해쉬 테이블(hash table) 해쉬 테이블은 키(key)라는 특별한 인덱스로 자료에 접근하는 배열로 구성되는 자료구조 이다. 해쉬 테이블의 해쉬 함수는 키 값을 받아 그 키의 해쉬값(hash coding 또는 hash value)을 리턴한다. 간단한 해쉬테이블을 시각적으로 표시했을 때, 아래와 같은 그림으로 표시할 수 있다. (Author: Jorge Stolfi, 원본: http://en.wikipedia.org/wiki/File:Hash_table_3_1_1_0_1_0_0_SP.svg) 해쉬 테이블의 장점은 상수 시간에 탐색이 가능한 것이다. 대신 다른 특징(혹은 단점?)은 순차적인 접근을 지원하지 않는 것이다. 따라서 이러한 특징에 맞는 상황에서 사용되어야 할 것이다. 추가적으로 해쉬 테이블의 .. 더보기