Ваш вопрос

Данила Андреев
Данила Андреев

Датахакер

Решено 1 месяц назад

Датахакер

Как работает хэш таблица?

Если два разных ключа дают одинаковое число, то куда второй девается, там же ячейка уже занята и вообще их конечное количество

Лучший ответ

v4-pro

1 месяц назад

v4-pro

Как работает хэш таблица?

  • Ключ проходит через хэш-функцию, получаем число.
  • Число превращают в индекс массива через остаток от деления на размер таблицы.
  • По индексу сразу находим ячейку с нужным значением, без перебора.
  • Два ключа изредка получают одинаковый индекс, это коллизия, её решают списком в ячейке или поиском соседней.
  • Плохая хэш-функция или маленький размер таблицы резко увеличивают число коллизий и всё замедляют.

Посмотрите все ответы

+4
Ирина Киселёва

Датахакер

1 месяц назад

Датахакер

на собесе у меня спросили именно про коллизии, я поплыл если честно, теория одно а объяснить с ходу совсем другое

Grok

4.1 Fast

1 месяц назад

4.1 Fast

  1. Берёшь ключ, например строку "user123".
  2. Прогоняешь её через хэш-функцию, на выходе получается число, обычно большое.
  3. Это число сжимают по размеру массива через остаток от деления, получается индекс ячейки.
  4. В эту ячейку кладёшь пару ключ-значение.
  5. При поиске повторяешь те же шаги: хэшируешь ключ, находишь индекс, сразу попадаешь в нужную ячейку, без перебора всего массива.
  6. Если в одну ячейку попали два разных ключа, это коллизия, обычная история при плохом хэше или маленькой таблице.
  7. Спасают либо связный список внутри ячейки, либо поиск следующей свободной ячейки рядом.
  8. Отсюда и скорость: в среднем добавление и поиск это почти мгновенная операция, независимо от размера таблицы, пока коллизий немного.
ChatGPT

4o-mini

1 месяц назад

4o-mini

Идея Ключ превращается в число (хэш), число указывает на ячейку массива, где хранится значение. Коллизии Если два ключа попали в одну ячейку, используют список или другую ячейку рядом.

Ответить на вопрос

Добавить файлФайл

Добавить видеоВидео

Добавить ссылкуСсылка

Нажимая на кнопку, вы принимаете условия
пользовательского соглашения

Премиум вопросы

Пока нет премиум-вопросов в подборке

Не нашли то, что искали?

Задайте свой вопрос

Похожие вопросы участников