Содержание
- 2. АТД «Словарь» (dictionary) Словарь (ассоциативный массив, associative array, map, dictionary) – структура данных (контейнер) для хранения
- 3. Хеш-таблицы (Hash tables) Хеш-таблица (hash table) – структура данных для хранения пар «ключ – значение» Доступ
- 4. Основная идея Чем хороши статические массивы int v[100]? Быстрый доступ O(1) к элементу массива по его
- 5. Основная идея Чем хороши статические массивы int v[100]? Быстрый доступ O(1) к элементу массива по его
- 6. Хеш-таблицы (Hash tables) Ключ (Key) “Антилопа Гну” Хеш-таблица (Hash table) Хеш-функция (Hash function) hash(key) -> int
- 7. Хеш-таблицы (Hash tables) Хеш-таблица (Hash table) 0 1 2 … h – 1
- 8. Хеш-функции (Hash function) Хеш-функция (Hash function) – это функция преобразующая значения ключа (например: строки, числа, файла)
- 9. Хеш-функции (Hash function) Хеш-функция (Hash function) – это функция преобразующая значения ключа (например: строки, числа, файла)
- 10. Хеш-функции (Hash function) #define HASH_MUL 31 #define HASH_SIZE 128 unsigned int hash(char *s) { unsigned int
- 11. Понятие коллизии (Collision) Коллизия (Collision) – это совпадение значений хеш-функции для двух разных ключей Keys Hashes
- 12. Разрешение коллизий (Collision resolution) Метод цепочек (Chaining) – закрытая адресация Элементы с одинаковым значением хеш-функции объединяются
- 13. Разрешение коллизий (Collision resolution) Открытая адресация (Open addressing) В каждой ячейке хеш-таблицы хранится не указатель на
- 14. Требования к хеш-функциям Быстрое вычисление хэш-кода по значению ключа Сложность вычисления хэш-кода не должна зависеть от
- 15. Требования к хеш-функциям Равномерность (uniform distribution) – хеш-функция должна равномерно заполнять индексы массива возвращаемыми номерами Желательно,
- 16. Требования к хеш-функциям Равномерность (uniform distribution) – хеш-функция должна равномерно заполнять индексы массива возвращаемыми номерами Желательно,
- 17. Эффективность хеш-таблиц Хеш-таблица требует предварительной инициализации ячеек значениями NULL – трудоемкость O(h)
- 18. Пример хэш-функции для строк unsigned int ELFHash(char *key, unsigned int mod) { unsigned int h =
- 19. Jenkins hash functions uint32_t jenkins_hash(char *key, size_t len) { uint32_t hash, i; for (hash = i
- 20. Пример хэш-функции для чисел Ключи – размер файла (int) Значение, хранимое в словаре – название файла
- 21. Пример хэш-функции для строк
- 22. Хеш-таблицы (Hash table) Длину h хеш-таблицы выбирают как простое число Для такой таблицы модульная хеш-функция дает
- 23. Хеш-таблицы vs. Бинарное дерево поиска Эффективность реализации словаря хеш-таблицей (метод цепочек) и бинарным деревом поиска Ключ
- 24. Хеш-таблицы vs. Бинарное дерево поиска Эффективность реализации словаря хеш-таблицей (метод цепочек) и бинарным деревом поиска Ключ
- 25. Реализация хеш-таблицы #include #include #include #define HASHTAB_SIZE 71 #define HASHTAB_MUL 31 struct listnode { char *key;
- 26. Хеш-функция unsigned int hashtab_hash(char *key) { unsigned int h = 0; char *p; for (p =
- 27. Инициализация хеш-таблицы void hashtab_init(struct listnode **hashtab) { int i; for (i = 0; i hashtab[i] =
- 28. Добавление элемента в хеш-таблицу void hashtab_add(struct listnode **hashtab, char *key, int value) { struct listnode *node;
- 29. Поиск элемента struct listnode *hashtab_lookup( struct listnode **hashtab, char *key) { int index; struct listnode *node;
- 30. Поиск элемента int main() { struct listnode *node; hashtab_init(hashtab); hashtab_add(hashtab, "Tigr", 190); hashtab_add(hashtab, "Slon", 2300); hashtab_add(hashtab,
- 31. Удаление элемента void hashtab_delete(struct listnode **hashtab, char *key) { int index; struct listnode *p, *prev =
- 32. Удаление элемента int main() { struct listnode *node; /* ... */ hashtab_delete(hashtab, "Slon"); node = hashtab_lookup(hashtab,
- 34. Скачать презентацию


![Основная идея Чем хороши статические массивы int v[100]? Быстрый доступ O(1) к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/945724/slide-3.jpg)
![Основная идея Чем хороши статические массивы int v[100]? Быстрый доступ O(1) к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/945724/slide-4.jpg)



























Инструментальные средства тестирующих программ
Интерактивная викторина Безопасность в сети Интернет
Презентация "Информационно-коммуникационные технологии в образовании" - скачать презентации по Информатике
Информационная безопасность и защита персональных данных
Доработки и исправления Geo UTR
Создание презентации для выступления
Пакет подготовки презентаций
Аппаратные средства систем управления ЭТУС
Интернет
Жизнь online
Оценка количественных параметров текстовых документов
Программа для создания текстовых документов
Программирование на языке Паскаль
Диагностическая работа по информатике в формате ОГЭ
Аппаратное и программное обеспечение информационно-вычислительных сетей и систем связи
Складові частини комп’ютера
Программирование на языке Си#. ООП (Объектно-Ориентированное Программирование)
Программирование циклов
Подача заявления для участия в дистанционном электронном голосовании на выборах в органы государственной власти
Устройство компьютера
Схема
ФРИИ: cтартап за неделю
Отмена изменений. Команды revert, rollback, backout
Информационные технологии в обработке текстов
ТЕОРИЯ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ И СИСТЕМ форма контроля: экзамен, курсовая работа лектор – Барановская Татьяна Петровна, доктор
Создание графических примитивов в графическом редакторе
ТЗ на приложение для сбора анкет
Введение в HTML. Урок 1