team-work-it-AnnaVyy

0
5 месяцев назад
4 месяца назад
4 месяца назад
4 месяца назад
5 месяцев назад
4 месяца назад
README.md

Создаём в корне README.md в которой должны попасть gitverse аккаунты всех участников действа, описание того как выполнялась работа (в каких моделях), добротное описание созданного кода и структуры репозитория вцелом. Дополнительно укажите у кого ВЫ выполняли роль student 2

Аккаунты: donk666, tmttmt AnnaVyy - student 1 donk666 - student 2 tmttmt - student 3 Я выполняла роль student 2 у donk666

📊 Анализатор алгоритмов - краткий отчет

🏗️ Архитектура

Модель: Многоуровневая OOP архитектура с разделением ответственности

Уровни:

Презентационный - консольный интерфейс, форматирование вывода Бизнес-логика - оркестрация тестов, управление параметрами Алгоритмический - реализация 5 алгоритмов Измерительный - точные замеры времени и памяти 📁 Структура кода

  1. Базовые структуры (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-качеством кода.