Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по АиСД 2023 / Baraeva_Elizaveta_cw.doc
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
140 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра МО ЭВМ

Курсовая РАБОТА

по дисциплине «Алгоритмы и структуры данных»

Тема: Реализация и исследование хеш-таблицы

Студентка гр. 2383

Бараева Е.Н.

Преподаватель

Гаврилов А.В.

Санкт-Петербург

2023

ЗАДАНИЕ

на курсовую работу

Студентка Бараева Е.Н.

Группа 2383

Тема работы: Реализация и исследование хеш-таблицы

Вариант 3:

Реализация хеш-таблицы с методом решения коллизий – метод цепочек и проведение исследования функции удаления из хеш-таблицы.

Содержание пояснительной записки:

Содержание, Введение, Теоретическое описание структуры данных, Реализация, Исследование структуры данных, Заключение, Список использованных источников, Приложение А, Приложение Б.

Предполагаемый объем пояснительной записки:

Не менее 15 страниц.

Дата выдачи задания: 13.12.2023

Дата сдачи реферата: 24.12.2023

Дата защиты реферата: 24.12.2023

Студентка

Бараева Е.Н.

Преподаватель

Гаврилов А.В.

Аннотация

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

Содержание

Введение

5

1.

Теоретическое описание структуры данных

6

1.1

Основные понятия и определения

6

1.2

Временная и пространственная сложность операций

6

2.

Реализация

8

2.1.

Описание разработанных классов, методов

8

2.2.

Обоснование принятых решений по выбору типов данных и применяемых алгоритмов

9

2.3.

Примеры использования реализованных классов и методов

9

3.

Исследование структуры данных

11

3.1

Проведение экспериментов для оценки производительности

11

3.2

Анализ полученных результатов

11

Заключение

13

Список использованных источников

14

Приложение А. Исходный код программы

15

Приложение Б. Тестирование

17

Введение

Цель работы.

Целью данной работы является реализация хеш-таблицы (метод цепочек) и исследование функции удаления на различных объемах данных (10, 100, 1000, 10000, 100000).

Задачи.

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

1. Теоретическое описание структуры данных

1.1. Основные понятия и определения

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

В хеш-таблице обработка новых индексов производится при помощи ключей. А элементы, связанные с этим ключом, сохраняются в индексе. Этот процесс называется хешированием.

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

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

1.2. Временная и пространственная сложность операций

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

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

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

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

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

Соседние файлы в папке Лабы по АиСД 2023