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

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

data_set1 = [0, 1, 2, 3, 4, 5]
data_set2 = ["Richard", "Marko", "Ellie", "Drizzy", "James"]
dictionary = dict()
for x in range(len(data_set1)-):
     dictionary[data_set1[x]] = data_set2[x]
dictionary[0] = "Richard"
dictionary[1] = "Marko"

**Словари в python реализованы с использованием хеш-таблиц**

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

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

book_title = ["Scooby-Doo and the Dog", "Hunger Games", "Harry Potter and the Deathly Hollows"]
library_index = [0213, 2103, 3487]
library_search = dict()
for x in range(len(book_title)):
    library_search[book_title[x]] = library_index[x]
""" Add Item to Hash Table """
library_search["SpongeBob The Book"] = 1001

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

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