This preview shows pages 1–5. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Algorithms in Systems Engineering IE170 Lecture 11 Dr. Ted Ralphs IE170 Lecture 11 1 References for Todays Lecture Required reading CLRS Chapter 11 References D.E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching (Third Edition), 1998. R. Sedgewick, Algorithms in C++ (Third Edition), 1998. IE170 Lecture 11 2 Hash Tables We now consider data structure for storing a dictionary that support only the operations Most data structures for storing dictionaries depend on using comparison and exchange to order the items. This limits the efficiency of certain operations (recall the lower bound on the efficiency of comparisonbased sorting). A hash table is a generalization of an array that takes advantage of our ability to access an arbitrary array element in constant time. Using hashing, we determine where to store an item in the table (and how to find it later) without using comparison. This allows us to perform all the basic operations extremely efficiently. IE170 Lecture 11 3 Addressing using Hashing Recall the arraybased implementation of a dictionary from Lecture 9. In this implementation, we allocated one memory location for each possible key. How can we extend this method to the case where the set U of possible keys is extremely large? Answer : Use hashing . A hash function is a function h : U ,...,M 1 that takes a key and converts it into an array index (called the hash value )....
View
Full
Document
This note was uploaded on 02/29/2008 for the course IE 170 taught by Professor Ralphs during the Spring '07 term at Lehigh University .
 Spring '07
 Ralphs
 Systems Engineering

Click to edit the document details