Коллизии в хеш-таблицах 🤩 Коллизия возникает, когда два разных ключа попадают в один и тот же индекс массива. Например, при размере таблицы 10: 5 % 10 = 5 и 15 % 10 = 5 → оба ключа попадают в одну ячейку. Чтобы это решать, используют два подхода: цепочки и открытую адресацию. 1️⃣В методе цепочек каждая ячейка хранит список элементов. Если по индексу уже есть данные — новый ключ добавляется в связанный список. Это просто в реализации и не сильно зависит от заполненности таблицы, но требует дополнительной памяти и при большом числе коллизий списки могут становиться длинными. class HashTableChaining: def __init__(self, size): self.size = size self.table = [None] * size def hash_function(self, key): return hash(key) % self.size def insert(self, key, value): index = self.hash_function(key) if self.table[index] is None: self.table[index] = [(key, value)] else: for i, (k, v) in enumerate(self.table[index]): if k == key: self.table[index][i] = (key, value) return self.table[index].appen