17 KiB
title | TARGET DECK | FILE TAGS | tags | ||
---|---|---|---|---|---|
Addressing | Obsidian::STEM | hashing::addressing |
|
Overview
Direct
Given a universe of keys U = \{0, 1, \ldots, m - 1\}
, a direct-address table has m
slots. Each slot corresponds to a key in universe U
.
%%ANKI
Basic
Given universe U
, how many slots must a direct-address table have?
Back: |U|
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic What name is given to each position in a direct-address table? Back: A slot. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Given a direct-address table, the element at slot k
has what key?
Back: k
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Given a direct-address table, an element with key k
is placed in what slot?
Back: The $k$th slot.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Write pseudocode to test membership of x
in direct-address table T[0:m-1]
.
Back:
bool membership(T, x) {
return T[x.key] != NIL;
}
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
What is the worst-cast runtime complexity of direct-address table searches?
Back: O(1)
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Write pseudocode to insert x
into direct-address table T[0:m-1]
.
Back:
void insert(T, x) {
T[x.key] = x;
}
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
What is the worst-case runtime complexity of direct-address table insertions?
Back: O(1)
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Write pseudocode to delete x
from direct-address table T[0:m-1]
.
Back:
void delete(T, x) {
T[x.key] = NIL;
}
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
What is the worst-cast runtime complexity of direct-address table deletions?
Back: O(1)
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic In what situation does direct addressing waste space? Back: When the number of keys used is less than the size of the universe. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic In what situation is direct addressing impossible? Back: When the size of the universe is too large to hold in memory. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic What distinguishes direct addressing from closed and open addressing? Back: Direct addressing isn't concerned with conflicting keys. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic Direct addressing sits between what other addressing types? Back: Open and closed addressing. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI
Basic
What is the theoretical maximum load factor in direct addressing?
Back: 1
Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
Closed
In closed addressing, a key is always stored in the bucket it's hashed to. Collisions are dealt with using separate data structures on a per-bucket basis.
%%ANKI Basic What does "closed" refer to in term "closed addressing"? Back: A key is always stored in the slot it hashes to. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic What does "open" refer to in term "open hashing"? Back: A key may resides in a data structure separate from the hash table. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze {Closed} addressing is also known as {open} hashing. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze The following is an example of {closed} addressing. ! Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze The following is an example of {open} hashing. ! Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic What is the theoretical maximum load factor in closed addressing? Back: N/A Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic Why is the theoretical maximum load factor of closed addressing unbounded? Back: A closed addressing hash table can always have more entries inserted into it. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI
Basic
When is the load factor of a closed addressing hash table 0
?
Back: When no entries are stored in the table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
When is the load factor of a closed addressing hash table 1
?
Back: When there exist the same number of total entries as slots.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
When is the load factor of a closed addressing hash table > 1
?
Back: When there exist more total entries than number of slots.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
Chaining
The most common form of closed addressing is chaining. In this scheme, each slot j
is a (nullable) pointer to the head of a linked list containing all the elements with hash value j
.
%%ANKI Basic What is the most common implementation of closed addressing? Back: Chaining. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic What data structure is typically used in a hash table with chaining? Back: Linked lists. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic Consider a hash table with chaining. What is in an empty slot? Back: A NIL pointer. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic Consider a hash table with chaining. What is in a nonempty slot? Back: A pointer to the head of a linked list. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic Consider a hash table with chaining. How many linked list instances exist? Back: One for each slot in the hash table. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Cloze A hash table with chaining is an example of {closed} addressing. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Cloze A hash table with chaining is an example of {open} hashing. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI Basic What is the worst-case behavior of hashing with chaining? Back: All keys hash to the same slot. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
What is the load factor of a hash table in which all n
keys hash to one of m
slots?
Back: n / m
(the load factor is a property of the table, not the distribution of keys).
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hashing, what is the average unsuccessful search runtime?
Back: Given load factor \alpha
, \Theta(1 + \alpha)
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hash function h
, which elements are examined in an unsuccessful search for element x
?
Back: All the elements in slot h(x.key)
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hashing, what is the average successful search runtime?
Back: Given load factor \alpha
, \Theta(1 + \alpha)
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hash function h
, which elements are examined in a successful search for element x
?
Back: x
and the elements preceding x
in slot h(x.key)
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hashing, what is the average seach runtime?
Back: Given load factor \alpha
, \Theta(1 + \alpha)
.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
In a hash table with chaining and independent uniform hashing, when is the average runtime of search O(1)
?
Back: When the number of entries is at most proportional to the number of slots in the table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
Suppose n
is at most proportional to m
. How is this denoted in complexity notation?
Back: n = O(m)
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
Open
In open addressing, keys always reside in the hash table. Collisions are dealt with by searching for other empty buckets within the hash table.
%%ANKI Basic What does "closed" refer to in term "closed hashing"? Back: A key must reside in the hash table. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic What does "open" refer to in term "open addressing"? Back: A key is not necessarily stored in the slot it hashes to. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze {Open} addressing is also known as {closed} hashing. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze The following is an example of {closed} hashing. ! Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Cloze The following is an example of {open} addressing. ! Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI
Basic
What is the theoretical maximum load factor in open addressing?
Back: 1
Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI Basic Why is the theoretical maximum load factor of open addressing bounded? Back: An open addressing hash table can only store as many entries as slots. Reference: “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
END%%
%%ANKI
Basic
When is the load factor of an open addressing hash table 0
?
Back: When no entries are stored in the table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
When is the load factor of a open addressing hash table 1
?
Back: When there exist the same number of total entries as slots.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
%%ANKI
Basic
When is the load factor of an open addressing hash table > 1
?
Back: N/A
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
Bibliography
- “Hash Tables: Open vs Closed Addressing | Programming.Guide,” accessed June 12, 2024, https://programming.guide/hash-tables-open-vs-closed-addressing.html.
- Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).