Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Published in: Sports


  1. 1. Prepared by : Ramzi Alqrainy 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