Published on

Published in: Sports
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. 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
  2. 2. 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
  3. 3. * 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 quot;Ramzi Codequot; in page 7 3|Page HASHING
  4. 4. * 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
  5. 5. ** Alqrainy`s function In this assignment, I have developed my own function (called quot;Alqrainy's functionquot;) 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
  6. 6. 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
  7. 7. * 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
  8. 8. Implementation of Alqrainy`s Function in C++ 8|Page HASHING
  9. 9. 9|Page HASHING
  10. 10. 10 | P a g e HASHING
  11. 11. 11 | P a g e HASHING