You are on page 1of 11

Prepared by : Ramzi Alqrainy

qcs_2008@yahoo.com

ramzi_cs@hotmail.com

Hashing 2

Designing hash functions 3

Analysis of Hashing Method 7

Implementation of Alqrainy`s
Function 8

1|Page

HASHING
HASHING

A Hash function is any well-defined procedure or mathematical function which converts


a large, possibly variable-sized amount of data into a small datum, usually a single
integer that may serve as an index into an array. The values returned by a hash function
are called hash values, hash codes, hash sums, or simply hashes.

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

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

hash value by division method. (*)

* This code is a part from "Ramzi Code" in page 7

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:

* The Mid-Square Method

The key K is squared, then the hash function h is defined by:

h(k)=L

Where L is obtained by deleting digits from both ends of k2

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.

Alqrainy(k)=[k+(hash_size*3)/7] mod hash_size

Fig-1

Where k = key, hash_size = hash table size.

5|Page

HASHING
In order to give a picture of number of collision , five experiments have been done

using four methods. These methods are (Division, Multiplication,Mid-Sqaure ,


Alqrainy), the results of the experiments are shown in figure-2

This code to generate the


distinct random number.

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

You might also like