Удалить SmirnovaVYu/report.md
This commit is contained in:
parent
2cb8d56df5
commit
792ebeb415
|
|
@ -1,89 +0,0 @@
|
||||||
# Отчёт по лабораторной работе
|
|
||||||
|
|
||||||
## Цель работы
|
|
||||||
|
|
||||||
Реализовать три структуры данных «с нуля» (связный список, хеш-таблица, двоичное дерево поиска), применить их для хранения записей телефонного справочника и экспериментально сравнить производительность основных операций.
|
|
||||||
|
|
||||||
## Параметры эксперимента
|
|
||||||
|
|
||||||
- Количество записей: 10000
|
|
||||||
- Количество повторов каждого теста: 5
|
|
||||||
- Размер хеш-таблицы: 1000 корзин
|
|
||||||
|
|
||||||
## Результаты экспериментов
|
|
||||||
|
|
||||||
### 1. Связный список
|
|
||||||
|
|
||||||
| Режим | Вставка (сек) | Поиск (сек) | Удаление (сек) |
|
|
||||||
|-------|---------------|-------------|----------------|
|
|
||||||
| Случайный | 3.0333 | 0.0231 | 0.0157 |
|
|
||||||
| Отсортированный | 2.8224 | 0.0027 | 0.0003 |
|
|
||||||
|
|
||||||
### 2. Хеш-таблица
|
|
||||||
|
|
||||||
| Режим | Вставка (сек) | Поиск (сек) | Удаление (сек) |
|
|
||||||
|-------|---------------|-------------|----------------|
|
|
||||||
| Случайный | 0.1966 | 0.0007 | 0.0004 |
|
|
||||||
| Отсортированный | 0.1950 | 0.0001 | 0.0001 |
|
|
||||||
|
|
||||||
### 3. Двоичное дерево поиска (BST)
|
|
||||||
|
|
||||||
| Режим | Вставка (сек) | Поиск (сек) | Удаление (сек) |
|
|
||||||
|-------|---------------|-------------|----------------|
|
|
||||||
| Случайный | 0.0116 | 0.0001 | 0.0001 |
|
|
||||||
| Отсортированный | 3.0238 | 0.0003 | 0.0004 |
|
|
||||||
|
|
||||||
## Анализ результатов
|
|
||||||
|
|
||||||
### 1. Влияние порядка данных на BST
|
|
||||||
|
|
||||||
На отсортированных данных BST деградирует с O(log n) до O(n).
|
|
||||||
Время вставки увеличилось с 0.0116 до 3.0238 секунд — в 259.6 раз.
|
|
||||||
|
|
||||||
### 2. Почему хеш-таблица не чувствительна к порядку
|
|
||||||
|
|
||||||
Хеш-функция распределяет элементы случайно, порядок ввода не влияет на позицию элемента.
|
|
||||||
|
|
||||||
Разница между случайным и отсортированным порядком:
|
|
||||||
- Вставка: 0.1966 vs 0.1950
|
|
||||||
- Отношение: 0.99x (почти не чувствительна)
|
|
||||||
|
|
||||||
### 3. Почему связный список медленный при поиске
|
|
||||||
|
|
||||||
Поиск требует последовательного прохода O(n) без возможности индексации.
|
|
||||||
Поэтому связный список хорош только когда записей мало.
|
|
||||||
Для больших телефонных справочников он не подходит.
|
|
||||||
|
|
||||||
Сравнение скорости поиска (случайные данные):
|
|
||||||
- LinkedList: 0.0231 сек
|
|
||||||
- HashTable: 0.0007 сек (в 30.9 раз быстрее)
|
|
||||||
- BST: 0.0001 сек
|
|
||||||
|
|
||||||
### 4. Сравнение удаления
|
|
||||||
|
|
||||||
| Структура | Сложность | Время на 50 удалений (случайные данные) |
|
|
||||||
|-----------|-----------|------------------------------------------|
|
|
||||||
| Связный список | O(n) | 0.0157 сек |
|
|
||||||
| Хеш-таблица | O(1) в среднем | 0.0004 сек |
|
|
||||||
| BST | O(log n) в среднем | 0.0001 сек |
|
|
||||||
|
|
||||||
## Вывод:
|
|
||||||
|
|
||||||
| Задача | Рекомендация | Почему |
|
|
||||||
|--------|-------------|--------|
|
|
||||||
| Частый поиск | Хеш-таблица | O(1) в среднем, не зависит от порядка |
|
|
||||||
| Частые вставки/удаления | Хеш-таблица | Амортизированное O(1) |
|
|
||||||
| Нужен отсортированный вывод | Сбалансированное дерево (AVL/Red-Black) | In-order обход даёт сортировку |
|
|
||||||
| Мало данных (<100 элементов) | Связный список или массив | Простота, накладные расходы не оправданы |
|
|
||||||
| Последовательный доступ (очередь/стек) | Связный список | Вставка/удаление в начало/конец за O(1) |
|
|
||||||
|
|
||||||
## Заключение
|
|
||||||
|
|
||||||
Эксперимент наглядно демонстрирует:
|
|
||||||
1. **BST без балансировки опасен** — на отсортированных данных он деградирует до O(n)
|
|
||||||
2. **Хеш-таблица стабильна** — её производительность не зависит от порядка входных данных
|
|
||||||
3. **Связный список** подходит только для специфических задач с малым объёмом данных
|
|
||||||
|
|
||||||
## Дата выполнения
|
|
||||||
|
|
||||||
2026-05-21 14:44:41
|
|
||||||
Loading…
Reference in New Issue
Block a user