Lecture notes for CS 503, Advanced Programming I

Advanced Programming I Lecture Notes

3 April 2007 • Hashing Basics


Outline

Arrays Again

An Idea

Hash Table Properties

Hash Table Components

Hash Functions

Hash-Function Properties.

Hash-Function Properties..

Finding Hash Functions

Hash Table ADTs

ADT Implementation

Open-Address Hashing

Collisions

Handling Collisions

Linear-Probing Example

linear-probing example

Handling Clustering

Quadratic-Probing Example

quadratic-probing example

Double Hashing

Double-Hashing Example

double-hashing example

Problems

Chaining

Chaining Example

Coalescing

Coalescing Implemented

Implementing Hash Table ADTs

Chained Operations

Open-Address Hash Tables

Private ADT Operations

Public ADT Operations

Implementation Details

Hash Table Size

Load Factor

Hash Function Issues

Hash Function Mechanics

Keys To Integers

Hash Functions

Hashing by Bit Twiddling

Hashing by Division

Hashing by Multiplication

Comments

Hash Function Sources

Dual Hash Functions

Evaluating Hash Functions

Bad Hash Example

Good Hash Example

A Good Hash?

XOR Hashing

XOR Hashes

Low-Order Bits

Does It?

Does It?

Linear Congruential Hashing

Linear Congruential Results

Points to Remember

References


This page last modified on 25 July 2006.

This work is covered by a
Creative Commons License.