[SOLVED] COP3530 Programming Assignment 2 - Hashing- Hashing Analysis

35.00 $

Programming resource
Digital learning resource
Category:
Practical programming resource
Suitable for guided study and reference
Tutor guidance available when needed

Description

5/5 - (3 votes)

Perform an analysis of hash table number of collisions versus load factor as a function of collision resolution scheme and hash function.

Choose three hash table sizes which differ by at least a multiple of 10 (ex. Size1=100, Size 2=1000, Size 3=10000).

For each hash table size, randomly generate key values between 0 and 3 times the hash table size. As each key value is placed in the hash table, record the current load factor and the number of collisions that have occurred. When counting collisions, for each key there is at most one collision. (Even if the key requires multiple probes to find a spot, this counts as one collision.)

Perform this experiment for any two collision resolution schemes choosing one hash function.

Example Hash function: key mod table size, mid square (square the key, then middle digits modulo table size).

Example Collision resolution schemes: separate chaining, open addressing.

Thus there are 2 experiments with three table sizes per experiment.

Create plots similar to the one below for each experiment. Include number of collisions versus load factor for the three table sizes.

 

Your final submission should include:

1. Your implementation of hash tables, collision resolution schemes, and hash function (your source code).

2. Your full report

– Note that the report is 50% of the project grade and should include everything mentioned in the assignment description.

– This assignment has peer reviews which means 80% of the grade will be evaluated by the instructor and 20% by one of your peers.

You can use: C, C++, Java, Javascript, or Python for implementation.

 

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.