2.4 KiB
2.4 KiB
Отчёт по Заданию 1
Реализованные структуры
- Связный список
- Хеш-таблица (1000 бакетов)
- Двоичное дерево поиска
Результаты экспериментов (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))
