## Анализ результатов ### **1. Как порядок входных данных влияет на скорость вставки в BST** BST работает быстро только если дерево сбалансировано. При случайном порядке глубина дерева ≈ `O(log n)`, поэтому вставка быстрая. Но при отсортированных данных дерево вырождается в цепочку. Вставка становится: - **O(n)** на одну операцию - **O(n²)** на вставку всех элементов Это приводит к резкому росту времени (в эксперименте: **0.02 сек → 5.23 сек**). --- ### **2. Почему хеш‑таблица почти не чувствительна к порядку** Хеш‑функция распределяет элементы по бакетам независимо от порядка входа. Поэтому: - вставка ≈ **O(1)** - поиск ≈ **O(1)** - удаление ≈ **O(1)** Даже если данные отсортированы, хеш‑таблица работает одинаково быстро. --- ### **3. Почему связный список всегда медленный при поиске** Связный список не имеет индексов. Поиск идёт последовательно: head → next → next → ... Поэтому: - поиск = **O(n)** - вставка в конец = **O(n)** - удаление = **O(n)** Это делает его самой медленной структурой для телефонного справочника. --- ### **4. Как работает удаление в каждой структуре** #### Связный список - ищем предыдущий узел - перенаправляем ссылки - сложность: **O(n)** #### Хеш‑таблица - вычисляем бакет - удаляем элемент в маленьком списке внутри бакета - сложность: **O(1)** в среднем #### BST 3 случая: 1. лист 2. один потомок 3. два потомка (замена на inorder‑преемника) Сложность: - **O(log n)** в среднем - **O(n)** в худшем случае (несбалансированное дерево) --- ### **5. Какую структуру выбирать в реальной жизни** | Задача | Лучшая структура | Причина | |--------|------------------|---------| | Частые вставки | **HashTable** | O(1) | | Частый поиск | **HashTable** | O(1) | | Частое удаление | **HashTable** | O(1) | | Нужен отсортированный вывод | **BST** | in‑order обход | | Маленькие данные | Любая | Разницы нет | | Учебные цели | LinkedList | Простая структура | ### **Общий вывод:** > В реальных приложениях телефонный справочник почти всегда реализуют через **хеш‑таблицу**, так как она обеспечивает лучшую производительность для вставки, поиска и удаления.