SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Space and Time Tradeoffs (Hashing)




                                     1
Space and Time Tradeoffs
 Space and Time tradeoffs in algorithm design are a
 well-known issue .
    Example: computing values of a function at many points.


 One type of technique is to use extra space to
 facilitate faster and/or more flexible access to the
 data.
    This approach is called prestructuring.
    We illustrate this approach by Hashing.




                                                              2
Hashing
 A dictionary is a set that supports operations
 of searching, insertion, and deletion.
   Each element in the set contains a key and
   satellite data (the remainder of the record.)
   The keys are unique, but the satellite data are
   not.
 A hash table is an effective data structure for
 implementing dictionaries.
 Hashing is based on the idea of distributing
 keys among an one-dimensional array.

                                                     3
Direct-address Tables
 Suppose that an application needs a dynamic set in
 which each element has a key drawn from the
 Universe U = {0, 1, …, m-1}, where m is not too
 large. Denote direct-address table by T[0..m-1], in
 which each position, or slot, corresponds to a key in
 the universe U.
 Operations
    DIRECT-ADDRESS-SEARCH(T, k)          O(1)
     Return T[k]
    DIRECT-ADDRESS-INSERT(T, x)          O(1)
     T[key[x]]   x
    DIRECT-ADDRESS-DELETE(T, x)          O(1)
     T[key[x]]   NIL
                                                     4
Hash Tables
A hash table is used when the set K of keys stored in
dictionary is much smaller than the universe U = {0,
1, …, n-1}, of all possible Keys.
  An example, the key space of strings of characters.
  Requires much less storage while search cost is still O(1).
An example of hash table
Direct addressing vs. Hashing
  Direct addressing: an element with key k is stored in slot k;
  Hashing: an element with k is stored in slot h(k), where h(k)
  is the hash function.




                                                                5
Hash Tables
Hash function assigns an integer between 0 and m-1,
called hash address, to a key.
   An example hash function: h(K) = K mod m
     Integer keys (example)
     Character keys: ord(K), the position of the key in the alphabet.
     Character string keys:
            s −1
          (∑ ord (c j )) mod m
            i =0

         ( ord(c s-1) Cs-1   + ord(c
                                       s-2)   Cs-2   + … + ord(c
                                                                   0)   C0 ) mod m
  Let m = 13, calculate the hash address of the following
  strings
         A, FOOL, AND, HIS, MONEY, ARE, SOON, PARTED


                                                                                     6
Hash Function
 A hash function needs to satisfy two
 requirements:
   Needs to distribute keys among the cells of
   the hash table as evenly as possible. (m is
   usually chosen to be prime)
   Has to be easy to compute.




                                            7
Collision and Resolution
 Collision: two keys hash to the same
 slot.
 Collision resolution by open hashing
 (separate chaining)
 Collision resolution by closed hashing
 (open addressing)


                                          8
Open Hashing (Separate Chaining)
  Put all the elements that hash to the same
  slot in a linked list.
     Example
  Dictionary Operations
     CHAINED-HASH-SEARCH(T, k)
      search for an element with key k in list T[h(k)]
     CHAINED-HASH-INSERT(T, x)                   O(1)
      insert x at the head of list T[h(key[x])]
     CHAINED-HASH-DELETE(T, x)
      search and delete x from the list T[h(key[x])]
Exercise
                                                     9
Cost of Search
 Load factor of the hash table
    α = n/m, where n is the number of keys and m is
    the number of slots in the hash table.
    Too small: waste of space but fast in search
    Too large: save space but slow in search
 The worst case O(n): all keys hash to the same slot
 The average case
    Average cost of a successful search: O(1 + α / 2)
    Average cost of an unsuccessful search: O(α)
    If n is about equal to m, O(1)


                                                       10
Closed Hashing (Open Address Hashing)


 Open address hashing
    a strategy for storing all elements right in the array of the hash
    table, rather than using linked lists to accommodate collisions.
    Assumption: (m >=n)
    The idea is that if the hash slot for a certain key is occupied by a
    different element, then a sequence of alternative locations for the
    current element is defined.
     For every key k, a probe sequence <h(k, 0), h(k, 1), …, h(k, m-1)>
    is generated so that when a collision occurs, we successively
    examine, or probe the hash table until we find an empty slot in
    which to put the key..
 Probing policies
       Linear probing
       Quadratic probing
       Double hashing

                                                                    11
Linear Probing
 Given an ordinary hash function: h’, an auxiliary hash function,
 the method of linear probing uses the hash function
 h(k, i) = (h’(k) + i) mod m, for i = 0, 1, …, m-1.
 Search
    Compare the given key with the key in the probed position until
    either the key is found or an empty slot is encountered.
 An example
 The problem with deletion and the solution
    Lazy deletion: mark the previously occupied locations as “obsolete”
    to distinguish them from locations that have not been occupied.
 Advantage & Disadvantage:
    Easy to implement
    but when the load factor approaches 1, it suffers from clustering:
    Long runs of occupied slots build up, increasing the average search
    time.
 Exercise
                                                                   12
Quadratic Probing
 Given an ordinary hash function: h’, an auxiliary hash
 function, the method of quadratic probing uses the
 hash function
 h(k, i) = (h’(k) + c1i + c2i2) mod m,
 where i = 0, 1, …, m-1, c1 and c2 ‡ 0.

 Advantage & Disadvantage:
    Easy to implement
    It suffers from a milder form clustering: If two keys have the
    same initial probe position, then their probe sequences are
    the same.


                                                             13
Double Hashing
 Given two auxiliary hash functions: h1 and h2,
 double hashing uses the hash function
 h(k, i) = (h1(k) + ih2(k)) mod m,
 where i = 0, 1, …, m-1.
 An example
 One of the best methods available for open
 addressing.




                                                  14

Weitere ähnliche Inhalte

Was ist angesagt?

Concept of hashing
Concept of hashingConcept of hashing
Concept of hashing
Rafi Dar
 
Skiena algorithm 2007 lecture06 sorting
Skiena algorithm 2007 lecture06 sortingSkiena algorithm 2007 lecture06 sorting
Skiena algorithm 2007 lecture06 sorting
zukun
 

Was ist angesagt? (20)

Hashing in datastructure
Hashing in datastructureHashing in datastructure
Hashing in datastructure
 
Lec5
Lec5Lec5
Lec5
 
Hashing
HashingHashing
Hashing
 
Hash table
Hash tableHash table
Hash table
 
Hashing
HashingHashing
Hashing
 
Hashing PPT
Hashing PPTHashing PPT
Hashing PPT
 
Hashing
HashingHashing
Hashing
 
Hash tables
Hash tablesHash tables
Hash tables
 
Hashing
HashingHashing
Hashing
 
Open Addressing on Hash Tables
Open Addressing on Hash Tables Open Addressing on Hash Tables
Open Addressing on Hash Tables
 
Hashing Techniques in Data Structures Part2
Hashing Techniques in Data Structures Part2Hashing Techniques in Data Structures Part2
Hashing Techniques in Data Structures Part2
 
Open addressiing &amp;rehashing,extendiblevhashing
Open addressiing &amp;rehashing,extendiblevhashingOpen addressiing &amp;rehashing,extendiblevhashing
Open addressiing &amp;rehashing,extendiblevhashing
 
4.4 hashing
4.4 hashing4.4 hashing
4.4 hashing
 
Concept of hashing
Concept of hashingConcept of hashing
Concept of hashing
 
Hashing
HashingHashing
Hashing
 
Lec8
Lec8Lec8
Lec8
 
Skiena algorithm 2007 lecture06 sorting
Skiena algorithm 2007 lecture06 sortingSkiena algorithm 2007 lecture06 sorting
Skiena algorithm 2007 lecture06 sorting
 
Hashing notes data structures (HASHING AND HASH FUNCTIONS)
Hashing notes data structures (HASHING AND HASH FUNCTIONS)Hashing notes data structures (HASHING AND HASH FUNCTIONS)
Hashing notes data structures (HASHING AND HASH FUNCTIONS)
 
Hashing
HashingHashing
Hashing
 
Hashing In Data Structure
Hashing In Data Structure Hashing In Data Structure
Hashing In Data Structure
 

Ähnlich wie Algorithm chapter 7

Advance algorithm hashing lec II
Advance algorithm hashing lec IIAdvance algorithm hashing lec II
Advance algorithm hashing lec II
Sajid Marwat
 
Design data Analysis hashing.ppt by piyush
Design  data Analysis hashing.ppt by piyushDesign  data Analysis hashing.ppt by piyush
Design data Analysis hashing.ppt by piyush
22001003058
 

Ähnlich wie Algorithm chapter 7 (20)

13-hashing.ppt
13-hashing.ppt13-hashing.ppt
13-hashing.ppt
 
Presentation.pptx
Presentation.pptxPresentation.pptx
Presentation.pptx
 
Hashing using a different methods of technic
Hashing using a different methods of technicHashing using a different methods of technic
Hashing using a different methods of technic
 
Advance algorithm hashing lec II
Advance algorithm hashing lec IIAdvance algorithm hashing lec II
Advance algorithm hashing lec II
 
Randamization.pdf
Randamization.pdfRandamization.pdf
Randamization.pdf
 
Quadratic probing
Quadratic probingQuadratic probing
Quadratic probing
 
Lec5
Lec5Lec5
Lec5
 
Hashing.pptx
Hashing.pptxHashing.pptx
Hashing.pptx
 
03.01 hash tables
03.01 hash tables03.01 hash tables
03.01 hash tables
 
Lec4
Lec4Lec4
Lec4
 
Design data Analysis hashing.ppt by piyush
Design  data Analysis hashing.ppt by piyushDesign  data Analysis hashing.ppt by piyush
Design data Analysis hashing.ppt by piyush
 
08 Hash Tables
08 Hash Tables08 Hash Tables
08 Hash Tables
 
presentation on important DAG,TRIE,Hashing.pptx
presentation on important DAG,TRIE,Hashing.pptxpresentation on important DAG,TRIE,Hashing.pptx
presentation on important DAG,TRIE,Hashing.pptx
 
Algorithms notes tutorials duniya
Algorithms notes   tutorials duniyaAlgorithms notes   tutorials duniya
Algorithms notes tutorials duniya
 
4.4 hashing02
4.4 hashing024.4 hashing02
4.4 hashing02
 
session 15 hashing.pptx
session 15   hashing.pptxsession 15   hashing.pptx
session 15 hashing.pptx
 
LECT 10, 11-DSALGO(Hashing).pdf
LECT 10, 11-DSALGO(Hashing).pdfLECT 10, 11-DSALGO(Hashing).pdf
LECT 10, 11-DSALGO(Hashing).pdf
 
Maps&hash tables
Maps&hash tablesMaps&hash tables
Maps&hash tables
 
18. Dictionaries, Hash-Tables and Set
18. Dictionaries, Hash-Tables and Set18. Dictionaries, Hash-Tables and Set
18. Dictionaries, Hash-Tables and Set
 
Hashing Part Two: Static Perfect Hashing
Hashing Part Two: Static Perfect HashingHashing Part Two: Static Perfect Hashing
Hashing Part Two: Static Perfect Hashing
 

Mehr von chidabdu

Sienna 12 huffman
Sienna 12 huffmanSienna 12 huffman
Sienna 12 huffman
chidabdu
 
Sienna 11 graphs
Sienna 11 graphsSienna 11 graphs
Sienna 11 graphs
chidabdu
 
Sienna 10 dynamic
Sienna 10 dynamicSienna 10 dynamic
Sienna 10 dynamic
chidabdu
 
Sienna 9 hashing
Sienna 9 hashingSienna 9 hashing
Sienna 9 hashing
chidabdu
 
Sienna 8 countingsorts
Sienna 8 countingsortsSienna 8 countingsorts
Sienna 8 countingsorts
chidabdu
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heaps
chidabdu
 
Sienna 6 bst
Sienna 6 bstSienna 6 bst
Sienna 6 bst
chidabdu
 
Sienna 5 decreaseandconquer
Sienna 5 decreaseandconquerSienna 5 decreaseandconquer
Sienna 5 decreaseandconquer
chidabdu
 
Sienna 4 divideandconquer
Sienna 4 divideandconquerSienna 4 divideandconquer
Sienna 4 divideandconquer
chidabdu
 
Sienna 3 bruteforce
Sienna 3 bruteforceSienna 3 bruteforce
Sienna 3 bruteforce
chidabdu
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysis
chidabdu
 
Sienna 1 intro
Sienna 1 introSienna 1 intro
Sienna 1 intro
chidabdu
 
Sienna 13 limitations
Sienna 13 limitationsSienna 13 limitations
Sienna 13 limitations
chidabdu
 
Unit 3 basic processing unit
Unit 3   basic processing unitUnit 3   basic processing unit
Unit 3 basic processing unit
chidabdu
 
Unit 5 I/O organization
Unit 5   I/O organizationUnit 5   I/O organization
Unit 5 I/O organization
chidabdu
 
Algorithm chapter 1
Algorithm chapter 1Algorithm chapter 1
Algorithm chapter 1
chidabdu
 
Algorithm chapter 11
Algorithm chapter 11Algorithm chapter 11
Algorithm chapter 11
chidabdu
 
Algorithm chapter 10
Algorithm chapter 10Algorithm chapter 10
Algorithm chapter 10
chidabdu
 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9
chidabdu
 
Algorithm chapter 8
Algorithm chapter 8Algorithm chapter 8
Algorithm chapter 8
chidabdu
 

Mehr von chidabdu (20)

Sienna 12 huffman
Sienna 12 huffmanSienna 12 huffman
Sienna 12 huffman
 
Sienna 11 graphs
Sienna 11 graphsSienna 11 graphs
Sienna 11 graphs
 
Sienna 10 dynamic
Sienna 10 dynamicSienna 10 dynamic
Sienna 10 dynamic
 
Sienna 9 hashing
Sienna 9 hashingSienna 9 hashing
Sienna 9 hashing
 
Sienna 8 countingsorts
Sienna 8 countingsortsSienna 8 countingsorts
Sienna 8 countingsorts
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heaps
 
Sienna 6 bst
Sienna 6 bstSienna 6 bst
Sienna 6 bst
 
Sienna 5 decreaseandconquer
Sienna 5 decreaseandconquerSienna 5 decreaseandconquer
Sienna 5 decreaseandconquer
 
Sienna 4 divideandconquer
Sienna 4 divideandconquerSienna 4 divideandconquer
Sienna 4 divideandconquer
 
Sienna 3 bruteforce
Sienna 3 bruteforceSienna 3 bruteforce
Sienna 3 bruteforce
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysis
 
Sienna 1 intro
Sienna 1 introSienna 1 intro
Sienna 1 intro
 
Sienna 13 limitations
Sienna 13 limitationsSienna 13 limitations
Sienna 13 limitations
 
Unit 3 basic processing unit
Unit 3   basic processing unitUnit 3   basic processing unit
Unit 3 basic processing unit
 
Unit 5 I/O organization
Unit 5   I/O organizationUnit 5   I/O organization
Unit 5 I/O organization
 
Algorithm chapter 1
Algorithm chapter 1Algorithm chapter 1
Algorithm chapter 1
 
Algorithm chapter 11
Algorithm chapter 11Algorithm chapter 11
Algorithm chapter 11
 
Algorithm chapter 10
Algorithm chapter 10Algorithm chapter 10
Algorithm chapter 10
 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9
 
Algorithm chapter 8
Algorithm chapter 8Algorithm chapter 8
Algorithm chapter 8
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

Algorithm chapter 7

  • 1. Space and Time Tradeoffs (Hashing) 1
  • 2. Space and Time Tradeoffs Space and Time tradeoffs in algorithm design are a well-known issue . Example: computing values of a function at many points. One type of technique is to use extra space to facilitate faster and/or more flexible access to the data. This approach is called prestructuring. We illustrate this approach by Hashing. 2
  • 3. Hashing A dictionary is a set that supports operations of searching, insertion, and deletion. Each element in the set contains a key and satellite data (the remainder of the record.) The keys are unique, but the satellite data are not. A hash table is an effective data structure for implementing dictionaries. Hashing is based on the idea of distributing keys among an one-dimensional array. 3
  • 4. Direct-address Tables Suppose that an application needs a dynamic set in which each element has a key drawn from the Universe U = {0, 1, …, m-1}, where m is not too large. Denote direct-address table by T[0..m-1], in which each position, or slot, corresponds to a key in the universe U. Operations DIRECT-ADDRESS-SEARCH(T, k) O(1) Return T[k] DIRECT-ADDRESS-INSERT(T, x) O(1) T[key[x]] x DIRECT-ADDRESS-DELETE(T, x) O(1) T[key[x]] NIL 4
  • 5. Hash Tables A hash table is used when the set K of keys stored in dictionary is much smaller than the universe U = {0, 1, …, n-1}, of all possible Keys. An example, the key space of strings of characters. Requires much less storage while search cost is still O(1). An example of hash table Direct addressing vs. Hashing Direct addressing: an element with key k is stored in slot k; Hashing: an element with k is stored in slot h(k), where h(k) is the hash function. 5
  • 6. Hash Tables Hash function assigns an integer between 0 and m-1, called hash address, to a key. An example hash function: h(K) = K mod m Integer keys (example) Character keys: ord(K), the position of the key in the alphabet. Character string keys: s −1 (∑ ord (c j )) mod m i =0 ( ord(c s-1) Cs-1 + ord(c s-2) Cs-2 + … + ord(c 0) C0 ) mod m Let m = 13, calculate the hash address of the following strings A, FOOL, AND, HIS, MONEY, ARE, SOON, PARTED 6
  • 7. Hash Function A hash function needs to satisfy two requirements: Needs to distribute keys among the cells of the hash table as evenly as possible. (m is usually chosen to be prime) Has to be easy to compute. 7
  • 8. Collision and Resolution Collision: two keys hash to the same slot. Collision resolution by open hashing (separate chaining) Collision resolution by closed hashing (open addressing) 8
  • 9. Open Hashing (Separate Chaining) Put all the elements that hash to the same slot in a linked list. Example Dictionary Operations CHAINED-HASH-SEARCH(T, k) search for an element with key k in list T[h(k)] CHAINED-HASH-INSERT(T, x) O(1) insert x at the head of list T[h(key[x])] CHAINED-HASH-DELETE(T, x) search and delete x from the list T[h(key[x])] Exercise 9
  • 10. Cost of Search Load factor of the hash table α = n/m, where n is the number of keys and m is the number of slots in the hash table. Too small: waste of space but fast in search Too large: save space but slow in search The worst case O(n): all keys hash to the same slot The average case Average cost of a successful search: O(1 + α / 2) Average cost of an unsuccessful search: O(α) If n is about equal to m, O(1) 10
  • 11. Closed Hashing (Open Address Hashing) Open address hashing a strategy for storing all elements right in the array of the hash table, rather than using linked lists to accommodate collisions. Assumption: (m >=n) The idea is that if the hash slot for a certain key is occupied by a different element, then a sequence of alternative locations for the current element is defined. For every key k, a probe sequence <h(k, 0), h(k, 1), …, h(k, m-1)> is generated so that when a collision occurs, we successively examine, or probe the hash table until we find an empty slot in which to put the key.. Probing policies Linear probing Quadratic probing Double hashing 11
  • 12. Linear Probing Given an ordinary hash function: h’, an auxiliary hash function, the method of linear probing uses the hash function h(k, i) = (h’(k) + i) mod m, for i = 0, 1, …, m-1. Search Compare the given key with the key in the probed position until either the key is found or an empty slot is encountered. An example The problem with deletion and the solution Lazy deletion: mark the previously occupied locations as “obsolete” to distinguish them from locations that have not been occupied. Advantage & Disadvantage: Easy to implement but when the load factor approaches 1, it suffers from clustering: Long runs of occupied slots build up, increasing the average search time. Exercise 12
  • 13. Quadratic Probing Given an ordinary hash function: h’, an auxiliary hash function, the method of quadratic probing uses the hash function h(k, i) = (h’(k) + c1i + c2i2) mod m, where i = 0, 1, …, m-1, c1 and c2 ‡ 0. Advantage & Disadvantage: Easy to implement It suffers from a milder form clustering: If two keys have the same initial probe position, then their probe sequences are the same. 13
  • 14. Double Hashing Given two auxiliary hash functions: h1 and h2, double hashing uses the hash function h(k, i) = (h1(k) + ih2(k)) mod m, where i = 0, 1, …, m-1. An example One of the best methods available for open addressing. 14