2026-rff_mp/pogodinda/lab1/docs/report.md
2026-05-21 20:29:55 +03:00

48 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт по лабораторной работе "Структуры данных"
## 1. Введение
В данной работе были реализованы три структуры данных для хранения телефонного справочника: связный список, хеш-таблица и двоичное дерево поиска. Проведено экспериментальное сравнение производительности операций вставки, поиска и удаления на наборе из **10 000 записей**. Для каждой структуры тестирование выполнялось на двух вариантах входных данных: случайный порядок и отсортированный по имени.
## 2. Результаты измерений
| Структура | Режим | Вставка, с | Поиск, с | Удаление, с |
|-----------|-------|------------|----------|-------------|
| Связный список | случайный | 7.50 | 0.0376 | 0.1337 |
| Связный список | отсортированный | 7.12 | 0.0323 | 0.0263 |
| Хеш-таблица | случайный | 0.022 | 0.0001 | 0.0001 |
| Хеш-таблица | отсортированный | 0.024 | 0.0001 | 0.0001 |
| Двоичное дерево | случайный | 0.037 | 0.0001 | 0.0196 |
| Двоичное дерево | отсортированный | RecursionError | RecursionError | RecursionError |
![График производительности](data/graph.png)
## 3. Анализ результатов
### 3.1. Влияние порядка данных на BST
При вставке элементов в отсортированном порядке двоичное дерево поиска вырождается в линейный список. Эксперимент подтверждает это: вставка на отсортированных данных вызвала ошибку RecursionError, в то время как на случайных данных заняла 0.037 секунды.
### 3.2. Устойчивость хеш-таблицы к порядку
Хеш-таблица использует хеш-функцию, которая равномерно распределяет ключи по корзинам независимо от порядка поступления. В случайном и отсортированном режимах время вставки практически одинаково: 0.022 и 0.024 секунды.
### 3.3. Медлительность связного списка при поиске
Связный список не обеспечивает прямого доступа к элементам. Время поиска в списке (0.0376 сек) в 376 раз больше, чем в хеш-таблице (0.0001 сек).
### 3.4. Сравнение удаления
- Связный список: 0.1337 сек (требует линейного поиска)
- Хеш-таблица: 0.0001 сек (мгновенно)
- BST на случайных данных: 0.0196 сек
## 4. Вывод
**Хеш-таблица** оптимальный выбор, если требуется максимальная скорость поиска, вставки и удаления. В эксперименте показала стабильно высокую производительность во всех режимах.
**Двоичное дерево поиска** следует применять, когда необходимо получать данные в отсортированном порядке.
**Связный список** практически непригоден для больших объёмов данных из-за линейной сложности.
Для телефонного справочника рекомендуется использовать хеш-таблицу.