This action might not be possible to undo. Are you sure you want to continue?

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

Concept of Hashing

a hash table, or a hash map, is a data structure that associates keys (names) with values (attributes).

Example A small phone book as a hash table. .

Dictionaries Collection of pairs. . value) Each pair has a unique key. (key.

Lookup function (Hash function) .Just An Idea Hash table : Collection of pairs.

Each bucket has many slots.Hashing Key-value pairs are stored in a fixed size table called a hash table. A hash table is partitioned into many buckets. A hash function f(x) transforms the identifier (key) into an address in the hash table . Each slot holds one record.

. . . . . b-1 . . . . . . b buckets .Hash table s slots 0 0 1 1 s-1 . . . .

Ideal Hashing Uses an array table[0:b-1]. A bucket can normally hold only one dictionary pair. . element) is stored in its home bucket table[f[key]]. b-1]. Every dictionary pair (key. Each position of this array is a bucket. Uses a hash function f that converts each key k into an index in the range [0.

Ideal Hashing Example Pairs are: (22.(72.c).(33.f) Hash table is ht[0:7].d).a) [0] [1] [2] [3] [4] [5] [6] [7] 9 .(3.f) (22.e) (33.c) (85.e).(85.a). b = 8 (where b is the number of positions in the hash table) Hash function f is key % b = key % 8 Where are the pairs stored? [0] [1] [2] [3] (3.d) [4] [5] [6] [7] (72.

Collision (72.e) (33.a) [0] [1] [2] [3] [4] [5] [6] [7] Where does (25.f) (22.g) is already occupied by (33.c) This situation is called collision Keys that have the same home bucket are called synonyms 25 and 33 are synonyms with respect to the hash function that is in use 10 .g) go? The home bucket for (25.d) (85.What Can Go Wrong? .c) (3.

d) (85.a) [0] [1] [2] [3] [4] [5] [6] [7] A collision occurs when the home bucket for a new pair is occupied by a pair with different key An overflow occurs when there is no space in the home bucket for the new pair When a bucket can hold only one pair.What Can Go Wrong? Overflow (72. collisions and overflows occur together Need a method to handle overflows 11 .f) (22.c) (3.e) (33.

. Overflow handling method.) Size (number of buckets) of hash table. To avoid collision (two different pairs are in the same the same bucket. Overflow: there is no space in the bucket for the new pair.Some Issues Choice of hash function.

.Choice of Hash Function Requirements easy to compute minimal number of collisions A good hashing function distributes the key values uniformly throughout the range.

Some hash functions Division: Choose a number m(PRIME number) larger than the number n of keys in K. 7148. Of Address = 100( 0 -99) Let m =97 H(3205) = 3205 mod 97 . K=3205. The Hash function H is defined by H(k) = K(mod m) E. 2345 & No.g.

.112. partition k into 123.203. then return the address H(k)=123+203+241+112+20=699 ..241.Some hash functions Folding: Partition the key k into several parts.g. x=12320324111220.20. +kr e.. and add the parts together to obtain the hash address H(k) = k1+k2+ .

k2 = 10 272 025 H(k) = 72 7148. K= 3205. 2345 .g. E.Some hash functions Mid Square: The key k is squared. Then the Hsh function H is defined byH(k) = l Where l is obtained by deleting digits from both ends of k2 e.g.

.Overflow Handling An overflow occurs when the home bucket for a new pair (key. We may handle overflows by: Search the hash table in some systematic fashion for a bucket that is not full. Quadratic probing. Linear probing (linear open addressing). Chain. Rehashing Eliminate overflows by permitting each bucket to keep a list of all pairs for which it is the home bucket. Array linear list. element) is full.

Linear Probing resolves collisions by placing the data into the next open slot in the table.Linear probing (linear open addressing) Open addressing ensures that all elements are stored directly into the hash table. thus it attempts to resolve collisions using various methods. .

28. 4 6 8 23 7 12 16 28 12 29 11 30 33 0 34 0 45 • Insert pairs whose keys are 6. 0. 7. Home bucket = key % 17.Linear Probing – Get And Insert divisor = b (number of buckets) = 17. 30. 12. 11. 45 . 34. 33. 23. 29.

} } ht[i] = item.key. hash_value.3) void linear_insert(element item. while(strlen(ht[i].key)) { fprintf(stderr. element ht[]){ int i. } . exit(1).Linear Probing (program 8. item. i = hash_value = hash(item. if (i == hash_value) { fprintf(stderr. exit(1). “Duplicate entry\n”). } i = (i+1)%TABLE_SIZE.key)) { if (!strcmp(ht[i]. “The table is full\n”).key).

Problem of Linear Probing Identifiers tend to cluster together Increase the search time .

2 -----i.e..1....... h+1.. h.Quadratic Probing Quadratic probing uses a quadratic function of i as the increment (H(x)+i2)%b for H(K) = h For i = 0. h+4 . h+ i2 ..

Double hashing is one of the best methods for dealing with collisions. then a second hash function is calculated and combined with the first hash function. H(k. …. i) = (H1(k) + i H2(k) ) % m . Here Hi is a hash function. If the slot is full. Hm in sequence if collision occurs. H2.Rehashing Rehashing: Try H1.

.Data Structure for Chaining The idea of Chaining is to combine the linked list and hash table to solve the overflow problem.

Hashing with Chains Hash table can handle overflows using chaining Each bucket keeps a chain of all pairs for which it is the home bucket. The chain may or may not be sorted by key 25 .

30.11.34.Hash Table with Sorted Chains Put in pairs whose keys are 6.12. 33. 28.29.23.0.7. 26 .45 Home bucket = key % 17.

- data_HW3
- Cs111 Matlab Loops
- JUnit With Eclipse
- 384k11intro2
- Lab_Sheet_9
- Maple Guide
- Binary Search 27
- Question Bank DS
- Oracle Analytical Functions
- Tabular Minimization
- Database Module - Day 4
- Array of Xii
- Question Bank ADB
- PostGIS Grid Generate
- Overview Postgis
- Howto-Use-Gestures-or-Create-Your-Own-Ones.pdf
- SQL
- Alqrainy's Function to minimize the collision of hashing
- Informatica Scenarios
- IEEE questions 7
- Yazici Searching Hashing 2007
- Lecture 14
- MELJUN CORTES Querying Database
- Converting Complex Procedure Logic to Set SQL Using Derived Tables
- Lecture 15
- Sample Exam
- Basis Path Testing
- Lecture4_RelationalModel
- EviewsTutorial
- Amazon Questions.txt

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd