Я не понимаю, как реализовать специальную хеш-таблицу. Идея состоит в том, что хэш-таблица дает приблизительное соответствие . Таким образом, идеальный хеш-таблицы (например, найти в java.util) просто дает карту, таким образом, что:Приблизительная хеш-таблица, существует ли такая структура данных?
Hashtable h = new Hashtable();
...
x = h.get(y);
Если х является результатом применения отображения ч к аргументу у, т.е. в основном в математике это была бы функция , а именно x = h (y). Теперь для приближенного матча, что о структуре данных, который дает мне быстро:
x = h(k) where k=max { z<=y | h(z)!=null }
Проблема в том, к может быть очень далеко от заданного у. Например, y может быть 2000, а следующий занятый слот k может составлять 1000. Некоторое число линейного поиска было бы дорогостоящим, структура данных должна быстрее выполнять задание .
Я знаю, как это сделать с деревом (*), но что-то с хешем, может ли это также работать? Или, может быть, объединить некоторые свойства дерева и хэша в искомой структуре данных ? Некоторая структура данных, которая стремится к доступу O (1)?
Bye
(*) Вы можете использовать дерево, заказанный у, и найти что-то в следующем ниже или равный у.
Требование имеет тенденцию только к O (1), но я думаю, это не математически точно. –