team-work-it-AnnaVyy
Создаём в корне README.md в которой должны попасть gitverse аккаунты всех участников действа, описание того как выполнялась работа (в каких моделях), добротное описание созданного кода и структуры репозитория вцелом. Дополнительно укажите у кого ВЫ выполняли роль student 2
Аккаунты: donk666, tmttmt AnnaVyy - student 1 donk666 - student 2 tmttmt - student 3 Я выполняла роль student 2 у donk666
📊 Анализатор алгоритмов - краткий отчет
🏗️ Архитектура
Модель: Многоуровневая OOP архитектура с разделением ответственности
Уровни:
Презентационный - консольный интерфейс, форматирование вывода Бизнес-логика - оркестрация тестов, управление параметрами Алгоритмический - реализация 5 алгоритмов Измерительный - точные замеры времени и памяти 📁 Структура кода
- Базовые структуры (10%)
DataType, EfficiencyRating, QuickSortPivot - enum'ы ExecutionParameters - конфигурация тестов PerformanceResult - DTO для результатов 2. Алгоритмический слой (40%)
text AlgorithmBase (абстрактный) ├── SearchAlgorithm │ ├── LinearSearch (линейный поиск) │ └── BinarySearch (бинарный поиск) └── SortingAlgorithm ├── BubbleSort (пузырьковая) ├── QuickSort (быстрая) └── MergeSort (слиянием) Особенности:
Подсчет операций (сравнения, перестановки) Валидация входных данных Работа с копиями массивов 3. Сервисный слой (30%)
DatasetGenerator - генератор тестовых данных PerformanceMeasurer - точные замеры (Stopwatch, GC) ResultPresenter - форматирование таблиц, экспорт CSV 4. Интерфейсный слой (20%)
Консольное меню с 6 опциями Интерактивная настройка параметров История выполненных тестов 🔧 Ключевые технологии
.NET 8.0 - целевая платформа Stopwatch - наносекундная точность GC.GetTotalMemory() - замер потребления памяти Unicode символы - форматирование таблиц (╔═╗┌─┐) 📊 Метрики кода
~1300 строк кода 15 классов, 5 enum'ов 5 полных алгоритмов 3 типа тестовых данных 6 режимов работы 🎯 Что делает программа
Генерирует массивы (100-100,000 элементов) Запускает алгоритмы с точными замерами Сравнивает производительность Сохраняет результаты в CSV Оценивает эффективность (A-F) 💡 Инновации
Адаптивная рекурсия MergeSort (переход на InsertionSort) 4 стратегии выбора pivot для QuickSort Ранний выход для BubbleSort Воспроизводимость через seed Оценка эффективности по времени выполнения Итог: Полнофункциональный инструмент для анализа алгоритмов с академическим подходом и production-качеством кода.