Middle
22
Что такое хэш коллизия и какие методы её разрешения существуют?
Companies where asked
Answer from AI
sobes.tech AI
Хэш коллизия возникает, когда два разных входных значения дают одинаковое значение хэш-функции. Это неизбежно, так как множество возможных входов обычно больше, чем множество возможных хэш-значений.
Методы разрешения коллизий:
- Открытая адресация — при коллизии ищется следующая свободная ячейка по определённой последовательности (линейное, квадратичное пробирование, двойное хэширование).
- Цепочки (chaining) — в каждой ячейке хэш-таблицы хранится связанный список всех элементов с одинаковым хэш-значением.
- Рехэширование — при коллизии применяется другая хэш-функция.
Пример с цепочками на Python:
hash_table = [[] for _ in range(10)]
def insert(key, value):
index = hash(key) % 10
hash_table[index].append((key, value))
insert('apple', 1)
insert('papel', 2) # возможна коллизия