You are on page 1of 6

Міністерство освіти і науки України

Національний лісотехнічний університет України

Кафедра інформаційних технологій

ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ № 1


(другий семестр)
з навчальної дисципліни
«Алгоритми та структури даних» на
тему:
«Модифіковані алгоритми сортування»

Виконала:
студентка групи
КН-12/2
Проців С. Я.
Перевірила:
Левкович М. В.

Львів – 2021
МЕТА РОБОТИ: ознайомитись із модифікованими алгоритмами сортування
(метод Шелла) та отримати навики практичного їх застосування.
Завдання

Програмний код:
#include <iostream>
#include <time.h>
#include <Windows.h>
#include <math.h>
#include <iomanip>
using namespace std;

int main()
{
setlocale(LC_ALL, "Ukrainian");
//формуємо та виводимо масив//
const int n = 3, m = 8;
int A[n][m];
srand(time(0));
int ind = 0;
for (int i(0); i < n; i++)
{
for (int j(0); j < m; j++)
{
A[i][j] = -10 + rand() % 35;
cout << setw(3) << A[i][j];
}
cout << "\n\n";
}

cout << "\n\n";


//шукємо макс значення//
int max = A[0][0];
for (int i(0); i < n; i++)
{
for (int j(0); j < m; j++)
{
if (A[i][j] > max)
{
max = A[i][j];
ind = i;
}
}
}
//виводимо макс знач//
cout << "Максимальне = " << max << ' ' << "Рядок = " << ind + 1 << endl;
cout << endl;
//виводимо рядок з макс знач//
for (int i(0); i < n; i++)
{
for (int j(0); j < m; j++)
{
cout << setw(3) << A[ind][j];
}
}
cout << endl;
cout << "-----------------------------------" << endl;
//сортування//
int g = n / 2;
while (g > 0)
{
for (int j = 0; j < m; j += g)
{
double temp = A[ind][j];
int l = j - 1;
while (l >= 0 && A[ind][l] > temp)
{
A[ind][l + 1] = A[ind][l];

l--;
}
A[ind][l + 1] = temp;

}
g /= 2;
}
//виведення відсортованого масиву//
for (int j = 0; j < m; j++)
{
cout << A[ind][j] << "; ";
}
cout << "\n\n";
system("pause");
return 0;
}

Результат роботи:
Блок схема:

You might also like