Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

прога отчет3

.docx
Скачиваний:
0
Добавлен:
16.12.2024
Размер:
74.76 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное автономное образовательное учреждение высшего образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ИЯТШ

Отчет по

лабораторной работе №3

Разработка программы сортировки элементов массива.

Выполнила студентка группы 0А23

Шевченко А.В.

Проверил преподаватель

Дериглазов А.А.

Томск 2022 г.

Оглавление

Цель работы 3

Задание 4

Теоретическая часть 5

Описание решения алгоритма задачи 6

Вывод 8

Цель работы

Изучить некоторые алгоритмы сортировки данных, научиться применять их и реализовывать на алгоритмическом языке Си с использованием операторов цикла при решении конкретных задач.

Задание

Получить номер варианта задания у преподавателя, ведущего лабораторные занятия.

Ознакомиться с заданием к лабораторной работе (файл Задания.doc).

Ознакомиться с учебно-методическими указаниями к лабораторной работе (файл Лаб_3.doc).

Составить алгоритм решения задачи согласно своему варианту.

Составить блок-схему алгоритма программы.

Набрать текст программы на языке Си с помощью текстового редактора.

Провести трансляцию и компоновку программы.

Решить контрольный пример.

Составить отчет по лабораторной работе в соответствии с правилами оформления отчета (файл Общие_указания_к_лабораторным_работам.doc).

Вариант 19

Дан целый массив максимальной размерности 200. Провести сортировку по убыванию положительных чисел и по возрастанию отрицательных чисел. (Примечание: 0 считать положительным числом) Ввод исходного массива организовать из файла, при вводе учесть возможность ввода массива меньшей размерности.

Результаты работы программы вывести на экран и в файл.

Теоретическая часть

Сортировка данных- упорядочить их определенным образом.

Метод пузырька-идея этого метода отражена в названии. Самые легкие элементы массива “всплывают” наверх, самые “тяжелые” – тонут.

Алгоритмически это можно реализовать следующим образом: будем просматривать весь массив “снизу-вверх” (от первого элемента к последнему) и менять стоящие рядом элементы в том случае, если “нижний” элемент меньше, чем “верхний”. Таким образом, мы вытолкнем наверх самый “легкий” элемент всего массива. Теперь повторим всю операцию для оставшихся неотсортированными первых N-1 элементов

Сортировка выбором-Смысл данного алгоритма сводится к следующему:

Задаем номер места К в последовательности, на которое нужно будет поместить очередной упорядочиваемый элемент.

Находим в неупорядоченной части последовательности элемент с самым большим (или самым маленьким) значением, запоминая его номер.

Меняем его местами с тем, который находится на К-ом месте.

Все указанные операции повторяются до тех пор, пока не упорядочим всю последовательность.

Сортировка методом Шелла-Основная идея сортировки по Шеллу заключается в том, что сначала сравниваются удаленные друг от друга элементы, а не смежные, как в методе «пузырька». Это приводит к быстрому устранению большей части неупорядоченности и сокращает последующую работу. Интервал между элементами постепенно сокращается до единицы, когда сортировка фактически превращается в метод перестановки соседних элементов.

Описание решения алгоритма задачи

Сначала добавлены заголовочные файлы, для работы с программой.

Создан текстовый файл, из которого выводились значения.

Затем задана размерность массива.

Написан цикл сортирующий массив при помощи Метода Пузырька, в который было добавлено условие для проверки значение элемента массива на положительные и отрицательные.

Отсортированный массив был выведен в файл и в консоль.

Полный код программы представлен на рисунках 1 и 2.

Рисунок - 1

Рисунок 2

Результат выполнения программы в консоле представлен на рисунке 3

Рисунок 3

Вывод

В ходе работы я были изучены некоторые алгоритмы сортировки данных, приобретены навыки применять их и реализовывать на алгоритмическом языке Си с использованием операторов цикла при решении конкретных задач. В частности, был использован метод Пузырька.