37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
#структура_данных
|
||
|
||
![[Pasted image 20250110091057.png]]
|
||
|
||
> Свяжите воедино хеш-функция и массив, и вы получите структуру данных, которая называется хеш-таблицей.
|
||
|
||
Эффективность: в среднем хеш-таблицы выполняют любые операции за время $O(1)$, в худшем случае $O(n)$
|
||
|
||
Они также известны под другими названиями: «ассоциативны е массивы», «словари», «отображения», «хеш-карты» или просто «хеши».
|
||
|
||
Хеш-таблица состоит из ключей и значений.
|
||
|
||
Хеш-таблицы отлично работают, когда вы хотите:
|
||
- создать связь, отображающую один объект на другой
|
||
- найти значение в списке
|
||
|
||
Кэширование стандартный способ ускорения работы. Все крупные вебсайты
|
||
применяют кэширование. А кэшируемые данные хранятся в хеше!
|
||
|
||
## Коэффициент заполнения
|
||
Вычисляется как (кол-во элементов в хеш таблице)/(общее кол-во элементов)
|
||
|
||
С ростом коэффициента заполнения в хеш-таблицу приходится добавлять
|
||
новые элементы, то есть изменять ее размер
|
||
Хеш-таблицу необходимо расширить. Расширение начинается с создания
|
||
нового массива большего размера. Обычно в таком случае создается массив
|
||
вдвое большего размера.
|
||
|
||
С меньшим коэффициентом загрузки число коллизий уменьшается, и ваша таблица начинает работать более эффективно.
|
||
|
||
|
||
Ссылки:
|
||
- [[Хеш-функция (Hash function)]]
|
||
- [[Массив (Array)]]
|
||
|
||
Источники:
|
||
- [[Адитья Бхаргава - Грокаем Алгоритмы]] |