hashing. hashing is the transformation of a string of characters into a usually shorter fixed-length...
DESCRIPTION
Hash Table Is a data structure that associates keys with values A small phone book as a hash table.TRANSCRIPT
![Page 1: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/1.jpg)
Hashing
![Page 2: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/2.jpg)
Hashing• Hashing is the transformation of a
string of characters into a usually shorter fixed-length value or key that represents the original string. Hashing is used to index and retrieve items in a database because it is faster to find the item using the shorter hashed key than to find it using the original value. It is also used in many encryption algorithms.
![Page 3: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/3.jpg)
Hash Table• Is a data structure that
associates keys with values
A small phone book as a hash table.
![Page 4: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/4.jpg)
Hash Table (1)• The primary operation it supports
efficiently is a lookup: given a key (a person's name), find the corresponding value (that person's telephone number). It works by transforming the key using a hash function into a hash, a number that is used as an index in an array to locate the desired location where the values should be.
![Page 5: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/5.jpg)
Hash Function• The hashing algorithm• 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.
![Page 6: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/6.jpg)
Hash Function
![Page 7: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/7.jpg)
1.Direct Hashing The key is the address without any algorith-mic manipulation. The data structure must therefore contain an element for every possible key. While the situations where you can use direct hashing are limited, when it can be used it is very powerful because it guarantees that there are no synonyms.
![Page 8: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/8.jpg)
001 Elmer002 Markh
005 Reymund
007 Hubert
100 Rollyn
HashFunction
005100002
5100
2
Address
Key
![Page 9: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/9.jpg)
2.Subtration Method Sometimes we have keys that are
consecutive but do not start from one. Example: A company may have only 100
employees, but the employee numbers start from 1000 and go to 1100. In this case, we use a very simple hashing function that subtracts 1000 from the key to determine the address.
![Page 10: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/10.jpg)
3.Digit Extraction Selected digits are extracted from the key
and used as the address. Example: Using six-digit employee number to
hash to a three-digit address (000-999), we could select the first, third, and fourth digits.
379452 = 394121267 = 112378845 = 388160252 = 102
![Page 11: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/11.jpg)
379452 Elmer
121267 Markh
378845 Hubert
160252 Arno045128 Rollyn
HashFunction
121267045128379452
33071
Divides the key by the array size and uses the remainder + 1
[001]
[006]
[005]
[004]
[003]
[002]
[007]
[306][307]
.
.
.
.
.
4.Mod division
![Page 12: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/12.jpg)
5.Midsquare Hashing The key is squared and the address
selected from the middle of the squared number.
Example: 9452 * 9452 = 89340304 : address is
3403As a variation, we can select a portion of the key, and then use them rather than the whole key. 379452 : 379 * 379 = 143641 : address is 364 378845 : 378 * 378 = 142884 : address is 288
![Page 13: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/13.jpg)
6.Folding Methods There are two folding methods that are
used: Fold Shift, the key value is divided into
parts whose size matches the size of the required address. Then, the left and right parts are shifted and added with the middle part.
Fold Boundary, the left and right numbers are folded on a fixed boundary between them and the center number. This results in a two outside values being reverse
![Page 14: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/14.jpg)
123456789368
321456987764
1
123456789
1
123 789
Discarded
123
KeyDigits
reversed
789
Digitsreversed
![Page 15: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/15.jpg)
Load Factor Is the number of elements in the list divided by the number of physical elements allocated for the list expressed for a percentage.
a = k / n x 100Clustering The tendency of data to build up unevenly across a hashed list. It is usually created by collisions.
![Page 16: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/16.jpg)
Collision
![Page 17: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/17.jpg)
Collision Is the event that occurs when a hashing algorithm produce an address for an insertion key and that address is already occupied.Home Address The address produced by hashing algorithm.Prime Area The memory that contains all of the home addresses.Probe Calculation of address and test for success.
![Page 18: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/18.jpg)
[1] [5] [9] [17]
1. hash(A)2. hash(B) 3. hash(C)
B & ACollides C & B
Collides
A BC
![Page 19: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/19.jpg)
Collision Resolution • The process of finding alternate location• Collision strategy techniques:
– Separate chaining– Open addressing– Coalesced hashing– Perfect hashing– Dynamic perfect hashing– Probabilistic hashing– Robin hood hashing– Cache-conscious collision resolution
![Page 20: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/20.jpg)
Separate Chaining• Sometimes called simply
chaining or direct chaining, in its simplest form each slot in the array is a linked list, or the head cell of a linked list, where the list contains the elements that hashed to the same location. Insertion requires finding the correct slot, then appending to either end of the list in that slot
![Page 21: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/21.jpg)
Open Addressing• Open addressing hash tables store the records directly
within the array. This approach is also called closed hashing. A hash collision is resolved by probing, or searching through alternate locations in the array (following a probe sequence) until either the target record is found, or an unused array slot is found, which indicates that there is no such key in the table.
![Page 22: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/22.jpg)
Well Known Probe Sequences
![Page 23: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/23.jpg)
379452 Elmer
121267 Markh
378845 Hubert
160252 Arno
045128 Rollyn
HashFunction
070918
166702
Collision is resolved by adding one(1) to the current address
[001]
[006]
[005]
[004]
[003]
[002]
[007]
[306][307]
.
.
.
.
.
Linear Probing
070918 Redjie
166702 Reymund
![Page 24: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/24.jpg)
Quadratic Probing The increment is the collision probe number
squared.Probe Collision Probe2 and New Num Location Increment Address 1 1 12 = 1 1
2 2 22 = 4 33 6 32 = 9 54 15 42 = 16 75 31 52 = 25 96 56 62 = 36 11
![Page 25: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/25.jpg)
Key Offset Is a double hashing method that produces
different collision path for different keys. Formula: offset = (key / listsize) adress = ((offset + old address) modulo listsize) + 1
For example if the key is 166702 and the listsize is 307, using the modulo division… offset = (166702 / 307) = 543 address = ((543 + 002) modulo 307) + 1 = 239
![Page 26: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/26.jpg)
379452 Elmer
070918 Redjie
121267 Markh
378845 Hubert
160252 Arno
045128 Rollyn
[001]
[006]
[005]
[004]
[003]
[002]
[007]
[306][307]
.
.
.
.
.
166702 Reymund
572556 Angelus
![Page 27: Hashing. Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string](https://reader036.vdocuments.mx/reader036/viewer/2022062306/5a4d1b167f8b9ab059991c84/html5/thumbnails/27.jpg)
Hash collision resolved by linear probing (interval=1).