Встречается на собеседованиях • сегодня
Какие знаешь способы разрешения хеш коллизий
В 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
интервью вопросы и ответы