CPSC 319 Dr. Marina Gavrilova Computer Science University of Calgary Canada
Outline r Perfect Hashing r Cichelli’s Algorithm 2
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. 3
Perfect Hashing Process of creating a perfect hash function A general form of a perfect hashing function is: p. hash (key) =(h 0(key) + g[h 1(key)] + g[h 2(key)] mod N 4
Cichelli’s Algorithm Ø In Cichelli’s algorithm, the component functions are: h 0 = length (key) h 1 = first_character (key) h 2 = last_character (key) and g = 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. 5
Cichelli’s Algorithm Table 1: Values associated with the characters of the Pascal reserved words Ø When we apply the Cichelli’s perfect hashing function to 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 6 perfect hashing function.