Question: The code should follow the instructions and output exactly. I will leave feedback. Thanks. The goal of this assignment is to work with hash functions
The code should follow the instructions and output exactly. I will leave feedback. Thanks. The goal of this assignment is to work with hash functions and understand the performance of the Division hashing method using open addressing techniques discussed in the slides.
Implement all required functions and the main function in one file, named hashFunctions.java.
Write one simple program in file hashFunctions.java that uses a fixed set of unique keys stored inan array as follows lmportant; hardcode the array content in your test program and make sure you have same exact key values below in the exact given order:
int keys
;
Design and integrate the following menu to allow the user to select a hash function to be invoked on the set of keys given above. Keep the menu simple and exactly as shown below:
MAIN MENU
Run HFDivision method with Linear Probing
Run HFDivision method with Quadratic Probing
Run HFDivision method with Double Hashing
Run HFStudent Designed HF
Exit Program
Enter option number:
Always redisplay the menu after an option other than option is fully exercised. Printout blank lines before and after the menu to make it easy to look at the output.
The output of an option is a display of the hash table as illustrated below see sample runs
The hash functions are defined below.
To keep the implementation simple and uniform across all submissions, define the hash table call it
Tableof size entries as a D array rows and columnsint Table new
int The first column stores the keys while the second column stores number of probes used
to resolve collision if a collided key.
After calling the hash function from the menu, the output of the program should display the hash table
followed by the sum of all probe values in the table. Declare a separate function in your class, say
sumProbes to perform this calculation and return the sum of all probes in the table second column
of the table
Note that the total number of probes a hashing function generates indicates the performance level of
the function The smaller the sum of probes the better the hash function.
HF points:
Declare a separate function HF that implements the Division method discussed in the slides with
Linear Probing for collision resolution.
For validation, the correct implementation gives total of probes for the given set of keys with all
keys allocated in the table. No unhashed keys.
HE points:
Declare a separate function HF that implements the Division method discussed in the slides with
Quadratic Probing for collision resolution.
For validation, the correct implementation gives total of probes for the given set of keys with all
keys allocated in the table. No unhashed keys.
HF points:
Declare a separate function HF that implements the Division method discussed in the slides with
Double Hashing for collision resolution. For the second hashing function, use the following function
and increment see example in the slides:
:Hkey key ; Increment is key j Hkey for j"dots:
Note: It is possible that HF will not be able to find an empty indexlocation in the hash table for a give
key, especially when very few empty entries remain in the hash table. In this case and to avoid
entering into an infinite loop, limit number of attempts to locate a key in the hash table to no more than
tries. After tries, printout a message like this example: "Unable to hash key to
the table". Note that this phenomenon happens due to not applying Load Factoring to our table.
For validation, the correct implementation gives total of probes for the given set of keys with no
more than keys "unable to store in the table".
HF points:
Declare a separate method HF that implements a hash function of your own design. The sky is
your limit You can come up with your own hash function or take and improve one of the above three
functions by either using a different hashing method other than Division method or a different
collision resolution method. Aim to come up with a function that beats the above three function ie
your function generates smallest number of probes for the given set of keys
Note: See the note in HF and apply it to your HF if necessary.
The performance of HF depends on the hashing method and the collision resolution technique you
implement. However, aim to get a low total number of probes. In some implementation like mid
square method you may get under probes total.
In your code, please add a block of comments explaining your implementation of HF
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
