Java Ch. 28 Hashing
Hash Code
A method of coding to obtain a search key for the purpose of storing and retrieving items of data.
Cluster
A number of similar things grouped together
Separate chaining
A strategy for open hashing when the data is stored in linked lists.
Hash table
A table of information that is accessed by way of a shortened search key (the hash value).
Perfect Hash Function
A theoretical hash function that maps keys uniformly and randomly into a hash table without any collisions.
Hash set
An unordered collection that consists of unique elements
Load factor
Another name for the ratio of rentable to usable area in an office building. The factor is multiplied by the tenant's usable area to determine rentable area.
Open addressing
Any collision resolution scheme that places all the data in the hash table rather than relying on some way of storing some of the data outside the table.
Hash map
Associates pairs using a hash function
Secondary Clustering
Elements hashing to a location taken due to primary clustering. These elements are displaced by primary clustering
Quadratic Probing
Resolving a hash collision by using the rehashing formula (HashValue +/- I^2) % array-size
Linear probing
Step size is 1. Find the index, and keep incrementing by one until you find a free space.
Rehashing
The process of running the hashing algorithm again when a collision occurs.
Double Hashing
The process of using two hash functions to determine where to store the data.
Polynomial Hash Code
The summation hash code, described above, is not a good choice for character strings or other variable-length objects that can be viewed as a tuple of (x 0, x 1, ..., x k-1), where the order of x i 's is significant.
Dictionary
a reference book containing an alphabetical list of words with information about them
Hash function
an algorithm that produces a fixed-length number called a hash or message digest
Associative Array
an unordered collection of data elements that are indexed by an equal number of values called keys
