Professional Documents
Culture Documents
qcs_2008@yahoo.com
ramzi_cs@hotmail.com
Hashing 2
Implementation of Alqrainy`s
Function 8
1|Page
HASHING
HASHING
Hash functions are mostly used to speed up table lookup or data comparison tasks —
such as finding items in a database, detecting duplicated or similar records in a large file,
finding similar stretches in DNA sequences, and so on.
The basic idea in hashing is to take a field in a record, known as the key, and convert it
through some fixed process (Hashing Function) to a numeric value (Hash Value) in the
range of 0…m-1 , where m is the table size.
2|Page
HASHING
* Designing hash functions
A good has function satisfies the assumption of simple uniform hashing: each
key is equally likely to hash to any of the m slots, independently of where any
other key has hashed to.
* Hashing By Division
* Hashing By Multiplication
* Hashing By Mid-Square
The division method involves mapping k into the ith slot where i is the remainder
when k is divided by the number of slots, m. That is, the hash function is:
h(k) = k mod m
With these conventions, let us write a method in C++ to hash the key and returning a
3|Page
HASHING
* The multiplication method
The multiplication method for creating hash functions operates in two steps.
1.Multiply the key k by a constant A in the range 0 < A < 1 and extract the fractional
part of kA.
2. Multiply this value by m and take the floor of the result.
In short the hash function is:
h(k)=L
4|Page
HASHING
** Alqrainy`s function
In this assignment, I have developed my own function (called
"Alqrainy's function") to minimize the collision when using Hashing
table. Fig-1 describes Alqrainy's function.
Fig-1
5|Page
HASHING
In order to give a picture of number of collision , five experiments have been done
6|Page
HASHING
* Analysis of Hashing Method
Alqrainy
exp5
Mid-Square
exp4 Multiplication
Division
exp3
exp2
exp1
0 20 40 60 80
exp1 exp2 exp3 exp4 exp5
Alqrainy 52 55 62 65 59
Mid-Square 68 71 65 72 68
Multiplication 57 62 67 71 58
Division 63 56 64 65 57
ff Fig-2
As shown in figure 2 the relationship between the Alqrainy's function and the number
of the collision has achieved good result a mong other methods
The code of the Alqrainy's function is described below.
7|Page
HASHING
Implementation of Alqrainy`s Function in C++
8|Page
HASHING
9|Page
HASHING
10 | P a g e
HASHING
11 | P a g e
HASHING