Каковы некоторые распространенные примеры хэш-таблицы? - PullRequest
2 голосов
/ 25 ноября 2011

Мне просто интересно, есть ли какие-нибудь "стандартные" примеры, которые все используют в качестве основы для объяснения природы проблемы, для которой требуется хэш-таблица. Каковы некоторые известные проблемы в реальном мире, которые могут принести большую пользу от использования хэш-таблицы?

* РЕДАКТИРОВАТЬ: также небольшая справка или объяснение того, почему преимущества проблемы с хэш-таблицей полезны! Спасибо

Ответы [ 5 ]

8 голосов
/ 31 января 2012

Пример из реального мира. Предположим, я останусь в отеле на несколько дней, потому что я посещаю конгресс по хешированию. В конце дня, когда я возвращаюсь в отель, я спрашиваю портье, есть ли для меня какие-либо сообщения. За его спиной шкаф, похожий на голубятню, с 26 входами, помеченными буквами от A до Z. Поскольку он знает мою фамилию, он идет в слот, помеченный буквой W, и достает три буквы. Один для Робби Уильямса, другой для Джимми Уэбба, а другой для меня.

Клерк должен был только осмотреть три письма. Сколько писем он должен был бы проверить, если бы был только один почтовый ящик?

2 голосов
/ 31 января 2012

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

2 голосов
/ 25 ноября 2011

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

Альтернативой будет список. Но каждый раз, когда мне нужно было бы искать пользователя. Хеш-таблица выдаст мне объект пользователя всего за один вызов.

1 голос
/ 25 января 2019

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

0 голосов
/ 31 января 2012

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

foo['bar']="baz";
surname['joe']="shmoe";

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

...