diff --git a/data_structures/hashing/double_hash.py b/data_structures/hashing/double_hash.py index bd1355fca65d..487a907b5099 100644 --- a/data_structures/hashing/double_hash.py +++ b/data_structures/hashing/double_hash.py @@ -1,4 +1,27 @@ #!/usr/bin/env python3 +""" +Double hashing is a collision resolving technique in +Open Addressed Hash tables. Double hashing uses the idea of +applying a second hash function to key when a collision occurs. + +Advantages of Double hashing + +The advantage of Double hashing is that it is one of the best form of +probing, producing a uniform distribution of records throughout a hash table. +This technique does not yield any clusters. +It is one of effective method for resolving collisions. + +Double hashing can be done using : +(hash1(key) + i * hash2(key)) % TABLE_SIZE + +Here hash1() and hash2() are hash functions and TABLE_SIZE + +is size of hash table. + +Reference: https://en.wikipedia.org/wiki/Double_hashing#:~:text=Double%20hashing%20is%20a%20computer,data%20structure%20on%20a%20table%20. + +""" + from .hash_table import HashTable from .number_theory.prime_numbers import is_prime, next_prime diff --git a/data_structures/hashing/hash_table.py b/data_structures/hashing/hash_table.py index f4422de53821..44de08975f19 100644 --- a/data_structures/hashing/hash_table.py +++ b/data_structures/hashing/hash_table.py @@ -1,4 +1,17 @@ #!/usr/bin/env python3 +""" +Hash Table is a data structure which stores data in an associative manner. +In a hash table, data is stored in an array format, where each data value has its own unique index value. +Access of data becomes very fast if we know the index of the desired data. + +Thus, it becomes a data structure in which insertion and search operations are very fast +irrespective of the size of the data. +Hash Table uses an array as a storage medium and uses hash technique to generate an index +where an element is to be inserted or is to be located from. + +Hashing is a technique to convert a range of key values into a range of indexes of an array. +We're going to use modulo operator to get a range of key values. +""" from .number_theory.prime_numbers import next_prime