Some Hashing Techniques (used to randomize the relative addresses) 1Prepared by Perla P. Cosme.

Presentation on theme: "Some Hashing Techniques (used to randomize the relative addresses) 1Prepared by Perla P. Cosme."— Presentation transcript:

Some Hashing Techniques (used to randomize the relative addresses) 1Prepared by Perla P. Cosme

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme2

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme3

Prime Number Division Remainder Method Similar with % (modulo or mod) function or the integer division remainder method The key of the record is used to apply the hash function where x = primary key of the record % = mod function PN = prime number Prepared by Perla P. Cosme4 h(x) = x % PN

Some notes to ponder 1.Why do we use the modulo function when we can choose any user-defined function? 2.Why would we choose a prime number when we can choose any positive integer no.? 3.Is the hash function given as h(x) = x % PN, the only function we can use? Prepared by Perla P. Cosme5

Prime Number Division Remainder Method Notes: 1.Choose PN such that it is the largest among the prime numbers based from the relative positions. Why? 2.Relative positions are pre-defined by the operating system (OS). But for purposes of illustration, we shall adopt in our class that our relative position could be any of the form 0..(N-1) positions. Prepared by Perla P. Cosme6

Just a simple mental exercise... Question: If the relative positions are labelled as 1..10, what would be the best choice for a prime number? Justify your answer. Prepared by Perla P. Cosme7

Another simple mental exercise... Question: If the relative positions are labelled as 1..99, what would be the best choice for a prime number? Justify your answer. Prepared by Perla P. Cosme8

Let’s try this... Assuming that there are 100 relative positions labeled as 0..99, and suppose we have the following key values: 24964, 25936, 32179, 39652, 40851, 53455, 53758, 54603, 63388, 81347 Questions: 1.Find the relative positions of these records using the hashing strategy called prime number division remainder method. 2.Determine the number of synonyms, if any. Prepared by Perla P. Cosme9

Answer Key ValuesRelative Positions 2496435 2593637 3217972 3965276 4085114 534558 5375820 5460389 6338847 8134761 No. of Synonyms0 Prepared by Perla P. Cosme10

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme11

Digit Extraction This technique is advisable to use if and only if you have a prior knowledge in the distribution or placement of digits within the record’s primary key. Why? Prepared by Perla P. Cosme12

Digit Extraction Algorithm: 1.Lay all the primary keys of all records to be placed within the relative positions. 2.By cross examination, choose the positions or columns of digits to be extracted. 3.The relative position of the record is the concatenated digits from the chosen columns. Prepared by Perla P. Cosme13

Let’s try this... Assuming that there are 100 relative positions labeled as 0..99, and suppose we have the following key values: 24964, 25936, 32179, 39652, 40851, 53455, 53758, 54603, 63388, 81347 Questions: 1.Find the relative positions of these records using the hashing strategy called digit extraction. Let us choose the positions of the chosen digits as the 5 th and 3 rd. 2.Determine the number of synonyms, if any. Prepared by Perla P. Cosme14

Answer Key ValuesRelative Positions 2496449 2593669 3217991 3965226 4085118 5345554 5375887 5460336 6338883 8134773 No. of Synonyms0 Prepared by Perla P. Cosme15

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme16

Folding Algo: 1.Consider the key values as a sequence of digits. 2.By “folding” the sequence of digits, we end up as if we divide the digits into 2. 3.Add up the digits such that the first half of the digits becomes the first addend while the second half is composed of the digits belonging to the other half. Prepared by Perla P. Cosme17

Let’s try this... Assuming that there are 100 relative positions labeled as 0..99, and suppose we have the following key values: 24964, 25936, 32179, 39652, 40851, 53455, 53758, 54603, 63388, 81347 Questions: 1.Find the relative positions of these records using the hashing strategies called folding. Let us assume that the demarcation line (or where the folding is made) is after the 3 rd digit. 2.Determine the number of synonyms, if any. Prepared by Perla P. Cosme18

Answer Key ValuesRelative Positions 2496413 2593695 321790 3965248 4085159 5345589 5375895 5460349 6338821 8134760 No. of Synonyms1 Prepared by Perla P. Cosme19

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme20

Radix Conversion Algorithm: (similar with conversion from one number system to another number system) 1.With each digit in the primary key, multiply each digit by powers of the chosen base number (or radix). The exponent must start from 0, and it increases as the number of digits increases. 2.Take the sum of all the products. 3.The last 2 digits of the computed sum is the relative address. Prepared by Perla P. Cosme21

Example Assume that our radix is 8. The octal number 12345, when converted to its base 10 will be computed as follows: 12345 8 = __________ 10 Prepared by Perla P. Cosme22

Let’s try this... Assuming that there are 100 relative positions labeled as 0..99, and suppose we have the following key values: 24964, 25936, 32179, 39652, 40851, 53455, 53758, 54603, 63388, 81347 Questions: 1.Find the relative positions of these records using the hashing strategies called radix conversion. Let us assume that the radix is base 12. 2.Determine the number of synonyms, if any. Prepared by Perla P. Cosme23

Answer Key ValuesRelative Positions 2496456 2593650 321791 3965286 4085157 534555 5375840 5460359 6338836 813473 No. of Synonyms0 Prepared by Perla P. Cosme24

Some Hashing Techniques 1.Prime Number Division Remainder Method 2.Digit Extraction 3.Folding 4.Radix Conversion 5.Mid-Square Prepared by Perla P. Cosme25

Mid-Square Algorithm: As the name implies, the randomization is done by taking the middle digits, then, square the middle values. The result is the relative address of the record. Prepared by Perla P. Cosme26

Point of Order If the relative positions ranges from 0..99, then take the last 2 digits of the result as the relative address of the record. Questions: 1.Why do we take the last 2 digits of the result as the relative address of the record – why not the first 2 digits or the middle digits, etc.? 2.If the relative positions are labelled as 0..999, which digits of the result (of mid-square operation) is considered as the relative address? Why? Prepared by Perla P. Cosme27

Notes to Ponder 1.It is not advisable to get only one digit as the middle number. Why? 2.If the number of digits in the key value is even, which digit positions are considered as the middle digits? Why? Prepared by Perla P. Cosme28

Let’s try this... Assuming that there are 100 relative positions labeled as 0..99, and suppose we have the following key values: 24964, 25936, 32179, 39652, 40851, 53455, 53758, 54603, 63388, 81347 Questions: 1.Find the relative positions of these records using the hashing strategies called mid-square. Let us take the 2 nd up to 4 th digits as our middle values. 2.Determine the number of synonyms, if any. Prepared by Perla P. Cosme29

Answer Key ValuesRelative Positions 2496416 2593649 3217989 3965225 4085125 5345525 5375825 546030 6338844 8134756 No. of Synonyms 3 Prepared by Perla P. Cosme30

That ends our discussion on the different hashing techniques. Are there questions????? Coming up next … rehashing techniques Prepared by Perla P. Cosme31