70 likes | 246 Views
CPSC 319. Dr. Marina Gavrilova Computer Science University of Calgary Canada. Perfect Hashing Cichelli’s Algorithm. Outline. Perfect Hashing.
E N D
CPSC 319 Dr. Marina Gavrilova Computer Science University of Calgary Canada
Perfect Hashing • Cichelli’s Algorithm Outline
Perfect Hashing • A perfect hashing function maps a key into a unique address. If the range of potential addresses is the same as the number of keys, the function is a minimal (in space) perfect hashing function. • What makes perfect hashing distinctive is that it is a process for mapping a key space to a unique address in a smaller address space, that is hash (key) unique address • Not only does a perfect hashing function improve retrieval performance, but a minimal perfect hashing function would provide 100 percent storage utilization.
Perfect Hashing Process of creating a perfect hash function A general form of a perfect hashing function is: p.hash (key) =(h0(key) + g[h1(key)] + g[h2(key)] mod N
Cichelli’s Algorithm • In Cichelli’s algorithm, the component functions are: h0 = length (key) h1 = first_character (key) h2 = last_character (key) andg = T (x) where T is the table of values associated with individual characters x which may apply in a key. The time consuming part of Cichelli’s algorithm is determining T.
Cichelli’s Algorithm Table 1: Values associated with the characters of the Pascal reserved words • When we apply the Cichelli’s perfect hashing functionto the keyword begin using table 1, we can get – The keyword begin would be stored in location 33. Since the hash values run from 2 through 37 for this set of data, the hash function is a minimal perfect hashing function.