Основные принципы Хэш-таблиц?

Я вполне смущен фундаментальными понятиями Хэш-таблицы. Если бы я должен был кодировать хеш, как я даже начал бы? Каково различие между Хэш-таблицей и просто нормальным массивом?

В основном, если бы кто-то ответил на этот вопрос, я думаю, что на все мои вопросы ответили бы: Если бы у меня было 100 случайным образом сгенерированных чисел (как ключи), как я реализовал бы хэш-таблицу и почему это будет выгодно по массиву?

Psuedo-код или Java ценились бы как средство обучения...

54
задан kylex 11 November 2008 в 17:23
поделиться

1 ответ

Я думаю, что к настоящему времени на этот вопрос дан ответ довольно ясно и по-разному.

Я просто хотел бы добавить еще одну точку зрения (которая может запутать и нового читателя)

На уровне наименьшей абстракции массивы - это просто непрерывный блок памяти. Учитывая начальный адрес ( startAddress ), размер ( sizeOfElement ) и индекс одного элемента, адрес элемента вычисляется как:

elementAddress = startAddress + sizeOfElement * index

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

0
ответ дан 7 November 2019 в 07:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: