Файл: Минобрнауки россии федеральное государственное бюджетное образовательное учреждение высшего образования тульский государственный университет.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 307
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Глава 1. Алгоритмы устойчивой сортировки: сортировка вставками и пузырьком (гибрид)
2. Описание входной и выходной информации
4. Общие требования к программе
5. Описание структуры программы для решения задачи
6. Инструкции по эксплуатации программ
7. Описание контрольного примера
2. Описание входной и выходной информации
МИНОБРНАУКИ РОССИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕУЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»Институт прикладной математики и компьютерных наукАлгоритмы устойчивой сортировки: сортировка вставками и пузырьком (гибрид). Графы: представление. (тема курсовой работы)ПОЯСНИТЕЛЬНАЯ ЗАПИСКАк курсовой работепо дисциплине_____________________________________________________________(полное наименование учебной дисциплины)
ТУЛА 2023
ЗАДАНИЕна курсовую работу по программированиюстудента гр. __________________________________________________ТЕМА: ___________________________________________________________________________________________________________________Исходные данные _______________________________________________________________________________________________________________________________________________________________________Задание получил:______________________________________________Дата выдачи задания :__________________________________________Задание выдал:________________________________________________Срок защиты курсовой работы: __________________________________Замечания консультанта: _________________________________________________________________________________________________________________________________________________________________К защите допущен. Консультант работы __________________________
Введение 4
Глава 1. Алгоритмы устойчивой сортировки: сортировка вставками и пузырьком (гибрид) 5
1. Постановка задачи 5
2. Описание входной и выходной информации 5
3. Алгоритм решения задачи 6
4. Общие требования к программе 11
5. Описание структуры программы для решения задачи 11
6. Инструкции по эксплуатации программ 12
7. Описание контрольного примера 14
Глава 2. Графы: представление 18
1. Постановка задачи 18
2. Описание входной и выходной информации 19
3. Алгоритм решения задачи 20
4. Общие требования к программе 22
5. Описание структуры программы для решения задачи 23
6. Инструкции по эксплуатации программ 26
7. Описание контрольного примера 27
Заключение 30
Список литературы 31
Приложение 1 32
Приложение 2 34
Цель данной курсовой работы состоит в том, чтобы изучить алгоритмы устойчивой сортировки и представления графов, а также научиться применять их в практических задачах на языке программирования C++.
Рисунок 1 - Блок-схема алгоритма сортировкиРисунок 2 - Блок-схема алгоритма сортировки
| Студент гр. | ______________ | ______________ | ______________ |
| | (индекс группы) | (подпись и дата) | (инициалы и фамилия) |
| Руководитель | ______________ | ______________ | ______________ |
| | (должность и ученая степень) | (подпись и дата) | (инициалы и фамилия) |
| | УТВЕРЖДАЮ Директор ИПМКН ___________А.А.Сычугов "___"___________20__г. |
| | "___"______________20__г. |
Оглавление
Введение 4
Глава 1. Алгоритмы устойчивой сортировки: сортировка вставками и пузырьком (гибрид) 5
1. Постановка задачи 5
2. Описание входной и выходной информации 5
3. Алгоритм решения задачи 6
4. Общие требования к программе 11
5. Описание структуры программы для решения задачи 11
6. Инструкции по эксплуатации программ 12
7. Описание контрольного примера 14
Глава 2. Графы: представление 18
1. Постановка задачи 18
2. Описание входной и выходной информации 19
3. Алгоритм решения задачи 20
4. Общие требования к программе 22
5. Описание структуры программы для решения задачи 23
6. Инструкции по эксплуатации программ 26
7. Описание контрольного примера 27
Заключение 30
Список литературы 31
Приложение 1 32
Приложение 2 34
Введение
В данной курсовой работе рассматривается разработка программ, реализующих алгоритмы устойчивой сортировки (сортировка вставками и сортировка пузырьком) и представление графов на языке программирования C++. Алгоритмы сортировки являются важной частью компьютерных наук и широко применяются в различных областях. Сортировка вставками и сортировка пузырьком относятся к простым и понятным алгоритмам, которые хорошо подходят для обучения и понимания основных принципов сортировки. Сортировка вставками основана на принципе вставки элемента в уже отсортированную последовательность. Этот алгоритм хорошо работает на небольших массивах и обладает устойчивостью, то есть сохраняет относительный порядок элементов с одинаковыми значениями. Сортировка пузырьком, в свою очередь, сравнивает и меняет местами соседние элементы до тех пор, пока массив не будет полностью отсортирован. Хотя этот алгоритм не является эффективным для больших массивов, он также является устойчивым и простым в реализации. Вторая часть курсовой работы посвящена представлению графов. Графы являются важной структурой данных и используются для моделирования связей между объектами в различных областях, таких как социальные сети, транспортные сети, и информационные системы. Представление графов позволяет эффективно работать с ними и решать разнообразные задачи, включая поиск кратчайшего пути, обход графа, и выявление связей между узлами.Для реализации алгоритмов сортировки и представления графов будет использован язык программирования C++, который широко применяется для разработки эффективных и надежных программ. Работа будет включать описание алгоритмов, приведение их псевдокода, и реализацию программ с использованием языка C++. В заключении будут проанализированы результаты работы программ и обсуждены их преимущества и недостатки.Цель данной курсовой работы состоит в том, чтобы изучить алгоритмы устойчивой сортировки и представления графов, а также научиться применять их в практических задачах на языке программирования C++.
Глава 1. Алгоритмы устойчивой сортировки: сортировка вставками и пузырьком (гибрид)
1. Постановка задачи
Данная программа должна реализовать гибридный алгоритм сортировки (сортировку вставками и пузырьком) на трех типах данных: целочисленных числах, вещественных числах и строках. Программа должна генерировать случайные данные каждого типа, сохранять их в отдельных файлах, затем сортировать данные с помощью гибридного алгоритма сортировки и измерять время, затраченное на сортировку для каждого типа данных. Отсортированные данные должны сохраняться в отдельных файлах.Основной целью программы является демонстрация работы гибридного алгоритма сортировки на различных типах данных и сравнение времени, затраченного на сортировку каждого типа. Программа также должна предоставлять возможность сохранения исходных и отсортированных данных в файлах для дальнейшего анализа или использования.Программа должна использовать библиотеки стандартного C++ для работы с контейнерами, случайной генерацией данных, измерения времени и файловым вводом-выводом.2. Описание входной и выходной информации
Входная информация:- Размер данных (dataSize): определяет количество элементов, которые будут сгенерированы и отсортированы для каждого типа данных (целочисленные числа, вещественные числа, строки).- Нетребуется пользовательского ввода.Выходная информация:- Консольный вывод: программа выводит информацию о времени, затраченном на сортировку каждого типа данных. Выводятся три значения времени: время, затраченное на сортировку целочисленных чисел, время на сортировку вещественных чисел и время на сортировку строк.- Файлы сгенерированных данных: программа сохраняет исходные случайно сгенерированные данные каждого типа (целочисленные числа, вещественные числа, строки) в отдельных файлах: "integer_source.txt", "real_source.txt" и "string_source.txt".- Файлы отсортированных данных: программа сохраняет отсортированные данные каждого типа (целочисленные числа, вещественные числа, строки) в отдельных файлах: "integer_sorted.txt", "real_sorted.txt" и "string_sorted.txt".Программа не предусматривает пользовательского ввода данных или выбора способа сортировки. Она автоматически генерирует случайные данные, сортирует их с использованием гибридного алгоритма сортировки вставками и пузырьком, и выводит информацию о затраченном времени на сортировку каждого типа данных. Пользователь может использовать сгенерированные файлы с данными для своих целей, таких как анализ производительности или дальнейшая обработка.3. Алгоритм решения задачи
Алгоритм сортировки вставками:1. Перебираем элементы массива, начиная со второго элемента (индекс 1).2. Сравниваем текущий элемент со всеми предыдущими элементами, начиная с предыдущего элемента (индекс j) до первого элемента (индекс 0).3. Если текущий элемент меньше предыдущего, меняем их местами.4. Повторяем шаги 2-3, пока не достигнем начала массива или не найдем место для вставки текущего элемента.5. Переходим к следующему элементу и повторяем шаги 2-4 для всех оставшихся элементов.6. После завершения цикла перебора элементов, массив будет отсортирован по возрастанию.Алгоритм сортировки пузырьком:1. Перебираем элементы массива с индексом i от 0 до n-1, где n - размер массива.2. Для каждого i сравниваем текущий элемент с его соседним элементом (i и i+1).3. Если текущий элемент больше следующего, меняем их местами.4. Повторяем шаги 2-3 для всех элементов массива, начиная с индекса 0 и до n-1-i.5. После завершения внешнего цикла сортировки (цикл по i), самый большой элемент будет перемещен в конец массива.6. Повторяем шаги 1-5 для n-1 раз, где n - размер массива, чтобы полностью отсортировать массив.Гибридный алгоритм сортировки вставками и пузырьком:1. Инициализируем переменные: размер массива (n), зазор (gap) равный n, флаг swapped для отслеживания перестановок.2. Пока зазор больше 1 или были выполнены перестановки:- Если зазор больше 1, уменьшаем его на фиксированный фактор уменьшения (например, gap = (gap * 10) / 13) и проверяем, не стал ли зазор меньше 1. Если да, устанавливаем зазор равным 1.- Устанавливаем флаг swapped в значение false.- Перебираем элементы массива с индексом i от 0 до n-gap.- Если элемент с индексом i больше элемента с индексом i+gap, меняем их местами и устанавливаем флаг swapped в значение true.- Если зазор равен 1, выполняем вставочную/пузырьковую сортировку для последнего прохода:- Перебираем элементы массива с индексом i от 0 до n-1.- Инициализируем флаг sorted в значение true.- Перебираем элементы массива с индексом j от 0 до n-i-1.- Если элемент с индексом j больше элемента с индексом j+1, меняем их местами и устанавливаем флаг sorted в значение false.- Если флаг sorted равен true, прерываем внутренний цикл.3. После завершения внешнего цикла сортировки, массив будет отсортирован по возрастанию.Гибридный алгоритм комбинирует преимущества сортировки вставками (эффективность при частично упорядоченных данных) и сортировки пузырьком (способность обнаруживать и перемещать наибольшие элементы). Первоначально используется сортировка вставками с изменяемым зазором, который постепенно уменьшается. Затем, для последнего прохода, применяется сортировка пузырьком, чтобы окончательно упорядочить оставшиеся элементы. Это позволяет гибридному алгоритму достичь хорошей производительности в широком диапазоне случаев сортировки данных.Рисунок 1 - Блок-схема алгоритма сортировкиРисунок 2 - Блок-схема алгоритма сортировки