Встречается на 1% собеседований по Python
Какие знаешь способы разрешения хеш коллизий
В Python (и не только) есть несколько основных методов разрешения коллизий в хеш-таблицах:
- Метод цепочек (Chaining)
Каждый слот содержит связный список элементов с одинаковым хешем.
Пример реализации:pythonclass HashTable: def __init__(self, size): self.size = size self.table = [[] for _ in range(size)] def insert(self, key, value): hash_key = hash(key) % self.size self.table[hash_key].append((key, value))
- Открытая адресация (Open Addressing)
При коллизии ищется следующий свободный слот (линейное/квадратичное пробинговое или двойное хеширование).
Пример (линейное пробирование):pythondef insert(self, key, value): index = hash(key) % self.size while self.table[index] is not None: index = (index + 1) % self.size self.table[index] = (key, value)
Нюансы:
- В CPython (dict) используется открытая адресация с псевдослучайным пробированием.
- Метод цепочек проще, но требует доп. памяти на ссылки.
- Open Addressing быстрее для небольших таблиц, но чувствителен к коэффициенту заполнения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы