Я реализую хеш-таблицу для проекта, используя 3 разных типа зондирования. Прямо сейчас я работаю над линейкой.Пробные хеш-таблицы
Для линейного зондирования я понимаю, как работает зондирование, и мой инструктор предположил, что он хочет, чтобы размер шага был 1. Дело в том, что дубликатов не допускается. Поэтому я должен «искать» значение, прежде чем вставлять его, не так ли? Но что, если таблица используется до той точки, где все ячейки «заняты» или «удалены»? Затем, чтобы найти конкретный ключ, чтобы убедиться, что его нет в таблице, мне придется искать всю таблицу. Это означает, что операция поиска (и, как правило, операция вставки) представляет собой O (n).
Это не кажется правильным, и я думаю, что я что-то неправильно понял.
Я знаю, что мне не придется столкнуться с одной и той же проблемой с квадратичным зондированием, так как таблица должна быть как минимум наполовину пуста, и она будет исследовать только определенное количество элементов. И для двойного хэширования я не уверен, как это будет работать, потому что мне также нужно будет найти таблицу, чтобы доказать, что ключ, который нужно вставить, отсутствует. Но как я знаю, как остановить поиск, если ни одна из ячеек «никогда не занималась»?
So: В открытом хэшировании, где каждая запись в таблице была занята в прошлом, требуется ли поиск O (n) зондов для поиска элемента (и вставки, если не допускаются дубликаты)?