Python/data_structures/hashing/quadratic_probing.py

27 lines
713 B
Python
Raw Normal View History

2018-03-20 23:48:58 +00:00
#!/usr/bin/env python3
from hash_table import HashTable
2018-03-20 23:48:58 +00:00
class QuadraticProbing(HashTable):
"""
Basic Hash Table example with open addressing using Quadratic Probing
"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def _colision_resolution(self, key, data=None):
i = 1
new_key = self.hash_function(key + i*i)
while self.values[new_key] is not None \
and self.values[new_key] != key:
i += 1
new_key = self.hash_function(key + i*i) if not \
self.balanced_factor() >= self.lim_charge else None
if new_key is None:
break
return new_key