
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ЭПУ
отчет
по лабораторной работе №1
по дисциплине «Информационные технологии»
Тема: «Алгоритмы и программы решения задач комбинаторики Алгоритм сортировки вставками и пузырьком»
Студент гр. 1205 |
|
Агеев А.А. |
Преподаватель |
|
Ларионов И. А. |
Санкт-Петербург 2022
Цель работы: изучить принцип работы алгоритмов сортировки вставкой и пузырьком, написать программу, выполняющую алгоритм, проверить корректность результатов работы программы.
Блок-схемы:
Рисунок 1 – блок-схема алгоритма сортировки вставкой
Рисунок 2 – блок-схема алгоритма сортировки пузырьком
Код программы:
1) Сортировка вставкой
#include <iostream>
using namespace std;
int main()
{
const int N = 10;
int M=0;
int a[N];
for (int i = 1; i < N; i++)
{
cout << a[i] << " " ;
}
cout<<endl;
for(int i = 1; i < N; i++)
{
int P = a[i];
int j = i-1;
while (j >= 0 && a[j] > P)
{
swap(a[j], a[j+1]);
j--;
M = M+1;
}
}
for (int k = 0; k < N; k++)
{
cout << a[k] << " ";
}
cout << endl;
cout << M << endl;
return 0;
}
2) Сортировка пузырьком
#include <iostream>
using namespace std;
int main()
{
const int N = 10;
int M=0;
int a[N];
int tmp;
for (int j = 0; j < N; j++)
{
cout << a[j] << " " ;
}
cout << endl;
for(int i = 0; i < N-1; i++)
{
for(int j = 0; j < N-1; j++)
{
if (a[j] > a[j+1])
{
tmp = a[j];
a[j]=a[j+1];
a[j+1]=tmp;
M=M+1;
}
}
}
for (int j = 0; j < N-1; j++)
{
cout << a[j] << " " ;
}
cout << endl;
cout << M << endl;
return 0;
}
Листинг результатов:
1)Сортировка вставкой:
Рисунок 3 – результат работы алгоритма сортировки вставкой для случайного массива
2)Сортировка
пузырьком
Рисунок 4 - результат работы алгоритма сортировки пузырьком для случайного массива
Выводы: написаны программы, выведены результаты, числа в массивах расставлены в порядке возрастания, выведено количество перестановок.