2026-rff_mp/starikovta/docs/report_task1.md
2026-09-05 17:16:35 +03:00

42 lines
2.2 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
## Реализованные структуры
1. Связный список
2. Хеш-таблица (1000 бакетов)
3. Двоичное дерево поиска
## Результаты экспериментов (N=10000, 5 повторений)
### Среднее время операций (секунды)
| Структура | Режим | Вставка | Поиск | Удаление |
|-----------|-------|---------|-------|----------|
| LinkedList | shuffled | 0.4201 | 0.0046 | 0.0035 |
| LinkedList | sorted | 0.4510 | 0.0027 | 0.0025 |
| HashTable | shuffled | 0.4048 | 0.0037 | 0.0027 |
| HashTable | sorted | 0.0419 | 0.0003 | - |
| BST | shuffled | 0.0002 | 0.0002 | - |
| BST | sorted | 1.4717 | 0.0053 | 0.0024 |
## Анализ
### 1. Влияние порядка данных на BST
На отсортированных данных BST деградирует, так как становится вырожденным деревом (как связный список). Время вставки растёт с O(log n) до O(n).
### 2. Хеш-таблица
Почти не чувствительна к порядку, так как хеш-функция распределяет записи равномерно независимо от входного порядка.
### 3. Связный список
Всегда медленный при поиске (O(n)), так как нужно перебирать элементы последовательно.
### 4. Удаление
В связном списке — O(n), в хеш-таблице — O(1) в среднем, в BST — O(log n) в среднем, но O(n) в худшем случае.
## Вывод
Какую структуру и для каких задач выбирать:
- **Частые вставки**: связный список (O(1) в начало/конец) или хеш-таблица (амортизированно O(1))
- **Частый поиск**: хеш-таблица (O(1) в среднем)
- **Необходимость получать данные в порядке**: BST (in-order обход даёт отсортированный список за O(n))