Почему некоторые программисты до сих пор предпочитают хранить свои данные в форме хеш-таблиц, а не в более общей системе на основе дерева или справки? Хотя хеш-таблицы не так популярны, как раньше, при работе с парами ключ-значение хэш-таблица по-прежнему оказывается самой простой и эффективной формой хранения данных.
Как я уже упоминал, хеш-таблицы работают как пара ключ-значение. Чтобы лучше понять его функциональность, если бы нам дали два листа бумаги с пронумерованными элементами, используя элемент в одном списке, мы смогли бы получить элемент во втором списке, который соответствует тому же номеру.
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
Теперь, когда мы получили простое представление о том, что такое хэш-таблица и как она работает, мы должны рассмотреть ее использование в наши дни. Криптография в значительной степени сосредоточена на использовании хеш-таблиц для проверки пароля. Когда вы используете веб-сайт, требующий проверки пользователем, ваш идентификатор пользователя и ваш пароль хранятся в виде пар ключ-значение в хеш-таблице, на основе введенного вами идентификатора пользователя программа проверит, соответствует ли ключ значению, которое затем решит, успешно ли вы вошли в систему, или вам нужно повторно ввести свои учетные данные.
Хеш-таблицы могут быть ограничены по функциональности, но они служат целям, с которыми не может конкурировать никакая другая структура данных, поэтому они все еще присутствуют в наши дни.