Каково истинное различие между словарем и хэш-таблицей?

Я всегда использовал словари. Я пишу в Python.

41
задан bernie 13 January 2010 в 23:56
поделиться

6 ответов

Словарь - это общая концепция, которая отображает ключи к значениям. Есть много способов реализации такого отображения.

Hashtable - это определенный способ реализации словаря.

Помимо HASHTABLES, еще один распространенный способ реализации словарей красно-черные деревья .

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

192
ответ дан 27 November 2019 в 00:02
поделиться

«Словарь» имеет несколько разных значений в программировании, как Wikipedia скажет вам - «ассоциативный массив», смысл, в котором Python использует термин (также Известен как «картографирование»), является одним из тех значений (но «словарь данных», а также «словарные атаки» в попытках угадывания пароля также важны).

Хэш-таблицы являются важными структурами данных; Python использует их для реализации двух важных встроенных типов данных, Dict и и .

Итак, даже в Python, вы не можете рассмотреть «хэш-таблица», чтобы быть синонимом «словаря» ... поскольку аналогичная структура данных также используется для реализации «множеств»! -)

16
ответ дан 27 November 2019 в 00:02
поделиться

Словарь Python внутренне реализован с помощью Hashtable.

9
ответ дан 27 November 2019 в 00:02
поделиться

Словарь - это структура данных, которая отображает ключи к значениям.

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

ИМО Это аналогично задавать разницу между списком и связанным списком.

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

27
ответ дан 27 November 2019 в 00:02
поделиться

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

1
ответ дан 27 November 2019 в 00:02
поделиться

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

0
ответ дан 27 November 2019 в 00:02
поделиться
Другие вопросы по тегам:

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