Практика 1(СД)
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
СОРТИРОВКИ МАССИВОВ Отчёт по практической работе №1 по дисциплине «Структуры данных»
Студент гр. 714-1
_______ И.С. Максимов
__.__.2025
Доцент кафедры КИБЭВС
_______ Е.Е. Лунёва
__.__.2025
Томск 2025
Содержание |
|
|
Введение ...................................................................................................................................................... |
3 |
|
1. Ход работы.......................................................................................................................................... |
4 |
|
1.1 |
Быстрая сортировка ....................................................................................................................... |
4 |
1.2 |
Сортировка расческой ................................................................................................................... |
4 |
1.3 |
Сортировка выбором...................................................................................................................... |
5 |
1.4 |
Алгоритмическая сложность ........................................................................................................ |
8 |
Заключение................................................................................................................................................. |
9 |
|
Приложение А .......................................................................................................................................... |
10 |
|
2
Введение
Целью работы является реализовать сортировку расческой, быструю сортировку и сортировку выбором и продемонстрировать на входных данных работоспособность приложения и корректность реализации алгоритма сортировки.
В ходе работы будут получены навыки:
-работы с массивами в C#;
-реализации алгоритмов сортировки;
-генерации входных данных.
Практическая работа выполнена на языке C# в среде разработки Visual Studio.
ИСПРАВИТЬ ОШИБКИ:
содержание нужно обычным шрифтом. не полужирным
Не делайте внезапных пробелов из нескольких строк между абзацами.
Например, стр 4 внизу, абзац, а потом текст со ссылкой на рисунок. Зачем пропущено несколько строк?
По блок-схеме - посмотрите внимательно блок шестиугольник цикл.
стр 5 - не выровнено по ширине. Следите пожалуйста по всему отчету.
Возможно оформление стилей вам поможет.
3
1.Ход работы
1.1Быстрая сортировка
Быстрая сортировка вставками. Этот алгоритм сегментирует элементы на отсортированные и неотсортированные начиная со второго элемента.
Алгоритм перебирает все элементы второго сегмента и вставляет их в первый сегмент на свою позицию.
На рисунке 1.1 представлен результат работы программы.
Рисунок 1.1 – Быстрая сортировка В приложении А представлен листинг программы быстрой
сортировки.
1.2 Сортировка расческой
Сортировка расческой – более совершенный метод пузырьковой сортировки, был придуман для более простой и быстрой сортировки маленьких чисел в конце массива и больших в его начале.
На рисунке 1.2 представлен результат работы программы.
4
Рисунок 1.2 – Сортировка расческой В приложении А представлен листинг программы сортировки
расческой.
Графический способ задания данного алгоритма сортировки расчёской в виде блок-схемы представлен на рисунке 1.4.
1.3 Сортировка выбором
Сортировка выбором — это простой алгоритм сортировки, суть которого в том, что на каждом шаге алгоритм "выбирает" следующий по порядку элемент, отсюда и название "сортировка выбором".
На рисунке 1.3 представлен результат работы программы.
5
Рисунок 1.3 – Сортировка выбором
6
Рисунок 1.4 – Блок-схема сортировки расчёской
7
В приложении А представлен листинг программы сортировки расчёской
1.4 Алгоритмическая сложность
Ниже в таблице 1 была приведена временная сложность этих алгоритмов, которая покажет их эффективность в работе с массивами.
Таблица 1.1 – Сравнение алгоритмической сложности алгоритмов
Алгоритм |
Структура |
|
Временная сложность |
||||||
|
данных |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Лучшее |
В худшем |
|||||
|
|
|
|
|
|
|
|
|
|
Расчёска |
Массив |
|
O(n*log(n)) |
|
|
O(n^2) |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Быстрая |
Массив |
O(n*log(n)) |
|
O(n |
^2 |
) |
|||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||||
Выбором |
Массив |
|
O(n^2) |
|
O(n |
^2 |
) |
||
|
|
|
|
|
|
|
|
|
|
Исходя из сложностей алгоритмов можно увидеть, что метод расчёски и быстрой сортировки совпадают в лучшем и худшем случае, в то время как сортировка выбором имеют одинаково высокую временную сложность как в худшем, так и в лучшем случае.
8
Заключение
В результате выполнения данной лабораторной работы были разработаны алгоритмы сортировкой расческой, быстрой сортировки и сортировки выбором, в результате чего были получены навыки работы со структурами данных.
9
Приложение А Программа для сортировки массива быстрой, расческой и выбором
using System;
namespace SortingApp
{
class Program
{
private static int[] array; private const int SIZE = 20;
private static Random random = new Random();
static void Main(string[] args)
{
bool exit = false; while (!exit)
{
InitializeArray();
Console.WriteLine("Сортировки");
Console.WriteLine($"Исходный массив ({SIZE} элементов):"); PrintArray(array);
Console.WriteLine();
10
