Лабораторные работы. Ерофеев / Лабораторная работа 3. АОПИ
.docxМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Федеральное государственное бюджетное образовательное учреждение Высшего образования «Санкт-Петербургский государственный университет
телекоммуникаций им. Проф. М.А. Бонч-Бруевича» (СПбГУТ)
Факультет Инфокоммуникационные сети и системы Кафедра Программной инженерии
Лабораторная работа №3
По дисциплине: Алгоритмические основы программной инженерии
Тема: Сортировка чисел в файле
Выполнил студент: Яковлев М. А. ИКПИ-32
Принял работу: Ерофеев С. А.
Дата выполнения: 25 сентября 2024 г.
Санкт-Петербург 2024 г.
Лабораторная работа №3
Тема: Сортировка чисел в файле Выполнил: Яковлев М. А. Группа: ИКПИ-32
Техническое задание
Цель программы – провести сортировку чисел из файла по так называемой сортировке Бабушкина, но нужно добавить работу через дек. Цель работы — подсчитать теоретическую и практическую сложность программы. Мы будем работать с вещественными числами, деком и системами счисления. Работа выполняется в Visual Studio 2022, версии 5.2
Схема алгоритма
Спецификатор переменных
numbers, result — строки, это последовательности символов Unicode любой длины, заключённые в одинарные, двойные или тройные кавычки
index, max_val, n, i, number — целый численный тип.
deque, digits, Babushkin_sort — переменные для работы с деком.
Программа на C++
Оценка сложности алгоритма
Теоретическая оценка сложности алгоритма:
1+1+1+1+1 — Библиотеки и константа 1+1+1 — struct Number
1+1+1+1+1 — struct Deque 1+1+1 — initDeque
1+1+1 — isEmpty
1+1+1+1 — isFull
1+1+1+1+1 — insertRear
1+1+1+1 — deleteFront 1+1+1+1+1+n*(1+1+1)+n*(1+1+1)+n*n*(1+1+1+1)+1+n+1 — Babushkin_sort
1+1+1+1+1+1+1+1+1+1+n+1+1+1+n*(1+1)+1+1+1+1+1+1 — main T(n)=4n²+9n+58
O(n)=n²
Практическая оценка сложности алгоритма:
Замерим время выполнения программы при увеличении количества элементов в файле, после чего построим график и сравним его с графиком квадратичной зависимости:
Тестирование
Вывод
При поставленной задаче разработать алгоритм для сортировки чисел в файле, которая справлялась бы с поставленной задачей. Работа выполняется в Visual Studio 2022, версии 5.2 Результаты тестов доказывают правильность программы.
