Open Addressing
Outline 1 Open Addressing Computer Science 331 2 Operations Hash Tables: Open Addressing Search Insert Delete Mike Jacobson 3 Collision Resolution Department of Computer Science University of Calgary Linear Probing Quadratic Probing Lecture #19 Double Hashing Analysis 4 Summary Mike Jacobson (University of Calgary) Computer Science 331 Lecture #19 1 / 25 Mike Jacobson (University of Calgary) Computer Science 331 Lecture #19 2 / 25 Open Addressing Open Addressing Open Addressing Example 0 1 2 3 4 5 6 7 T: NIL 25 2 NIL 12 NIL 14 22 In a hash table with open addressing, all elements are stored in the hash table itself. U = {1, 2,..., 200} For 0 ≤ i < m, T [i] is either m = 8 an element of the dictionary being stored, T : as shown above NIL, or h0 : Function such that DELETED (to be described shortly!) h0 : {1, 2,..., 200} → {0, 1,..., 7} Note: The textbook refers to DELETED as a “dummy value.” Eg. h0(k) = k mod 8 for k ∈ U. h0 used here for first try to place key in table. Mike Jacobson (University of Calgary) Computer Science 331 Lecture #19 3 / 25 Mike Jacobson (University of Calgary) Computer Science 331 Lecture #19 4 / 25 Open Addressing Open Addressing New Definition of a Hash Function Probe Sequence We may need to make more than one attempt to find a place to insert The sequence of addresses an element. hh(k, 0), h(k, 1),..., h(k, m − 1)i We’ll use hash functions of the form is called the probe sequence for key k h : U × {0, 1,..., m − 1} → {0, 1,..., m − 1} Nonstandard Requirement: some references, including Introduction h(k, i): Location to choose to place key k on an ith attempt to to Algorithms, require that insert the key, if the locations examined on attempts 0, 1,..., i − 1 were already full.
[Show full text]