Lecture notes for Week 6: Hashing
- Topics
- Lecture 17 (Friday, 11 February 2005)
- Lecture 17/18 (Tuesday, 15 February 2005)
- Suggested Problems
Topics
Textbook portions covered
- Introduction to Algorithms (Cormen et al.)
-
Chapter 11
- Engineering Algorithms...(Clowes “online book”)
-
Chapter 9
Lecture 17/18 (Tuesday, 15 February 2005)
Announcements
Hash functions
- Division method: h(k) = k mod m
- Multiplication method: h(k) = mfractioanl(kA)
Example (java Hashtable)
public synchronized boolean contains(Object value) {
if (value == null) {
throw new NullPointerException();
}
Entry tab[] = table;
for (int i = tab.length ; i-- > 0 ;) {
for (Entry<K,V> e = tab[i] ; e != null ; e = e.next) {
if (e.value.equals(value)) {
return true;
}
}
}
return false;
}
Example Java String hashCode()
*/
public int hashCode() {
int h = hash;
if (h == 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
return h;
}
Suggested Problems
- Introduction to Algorithms (Cormen et al.)
-
- Exercise 11.1-1
- Exercise 11.1-2
- Exercise 11.1-3
- Exercise 11.2-2
- Exercise 11.2-3
- Exercise 11.4-1
- Exercise 11.4-2
- Engineering Algorithms...(Clowes “online book”)
-
- 9.1
by Ken Clowes


