2026-rff_mp/starikovta/docs/report.md
2026-05-21 22:00:40 +03:00

2.4 KiB
Raw Blame History

Отчёт по Заданию 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))