Встречается на собеседованиях • сегодня

Что делать при возникновении коллизии

Коллизии в хеш-таблицах (например, в Python dict) возникают, когда разные ключи имеют одинаковый хеш. Python решает это двумя способами:

  1. Открытая адресация - если ячейка занята, ищется следующая свободная (методом линейного пробирования или квадратичного).
  2. Связывание - в одну ячейку помещается связный список элементов (редко используется в современных реализациях).

Пример коллизии:

python
class BadHash:
    def __hash__(self):
        return 42  # Все экземпляры будут иметь одинаковый хеш

a = BadHash()
b = BadHash()
d = {a: 'a', b: 'b'}  # Работает, но с коллизией

На практике:

  • Python автоматически обрабатывает коллизии
  • Для пользовательских классов важно правильно реализовать __hash__ и __eq__
  • При частых коллизиях производительность падает до O(n)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы