Вы находитесь на странице: 1из 15

Министерство образования республики Молдова

Технический Университет Молдовы


Департамент Программной Инженерии и Автоматики

Отчёт
Лабораторная работа №2
Тема: Методы быстрой сортировки и их сравнительный анализ

Проверила Скороходова Т.
Кишинёв – 2021

Тема: Методы быстрой сортировки и их сравнительный анализ


Цель: Реализация и анализ алгоритмов сортировки
Задания к лабораторной работе.
1. Для трех любых алгоритмов сортировки записать алгоритм с помощью псевдокода.
2. Продемонстрировать работу алгоритмов (вывести массив на каждом шагу и трассировку
этапов) для заданного массива:
№ варианта Массив А
7 21, 35, 56, 41, 24, 88, 6, 11, 57, 15

Работа алгоритма сортировки вставкой:


Идея алгоритма основана на внедрении в отсортированную часть массива элемента
следующего за этой частью, если он удовлетворяет условию сортировки. на первом шаге
сортировки второй элемент сравнивается с первым, на втором шаге третий элемент
сравнивается с двумя первыми и т. д. среди уже отсортированных i-1 элементов массива
вставляют i-й элемент без нарушения порядка, т. е. при вставке i-го элемента на j-е место (j < i)
элементы с индексами >j и <i увеличивают свой номер на единицу.
Шаг 0:
25 35 56 41 24 88 6 11 57 15

Шаг 1:
25 35 41 56 24 88 6 11 57 15

Шаг 2:
24 25 35 41 56 88 6 11 57 15

Шаг 3:
6 24 25 35 41 56 88 11 57 15

Шаг 4:
6 11 24 25 35 41 56 88 57 15

Шаг 5:
6 11 24 25 35 41 56 57 88 15

Шаг 6:
6 11 15 24 25 35 41 56 57 88
Работа алгоритма сортировки подсчетом:
Идея алгоритма для каждого элемента найти, сколько элементов, меньших определенного
числа, и поместить это число на соответствующие место. За линейный проход по массиву для
каждого из возможных значений подсчитываем, сколько элементов имеют такое значение.
Потом добавляем к каждому из найденных чисел суму всех предыдущих. Получая, таким
образом, сколько есть элементов, значения которых не больше данного значения. Далее, опять-
таки за линейный проход, формируем из исходного массива новый отсортированный.
Шаг 0:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 1:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 2:
Массив А:
25 35 56 41 24 88 6 11 57 15
Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 3:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 4:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 5:
Массив А:
25 35 56 41 24 88 6 11 57 15
Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Шаг 6:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

Шаг 7:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

Шаг 8:
Массив А:
25 35 56 41 24 88 6 11 57 15
Массив С:
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

Шаг 9:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

Шаг 10:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
Шаг 11:
Массив С:
0 0 0 0 0 1 1 1 1 1 2 2 2 2 3 3 3 3 3 3
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 9 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10

Шаг 12:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 1 1 1 1 2 2 2 2 3- 3 3 3 3 3
>2
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 9 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10

Массив В:
15

Шаг 13:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 1 1 1 1 2 2 2 2 3- 3 3 3 3 3
>2
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10

Массив В:
15 57

Шаг 14:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>1 >2
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10

Массив В:
11 15 57

Шаг 15:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10

Массив В:
6 11 15 57

Шаг 16:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9

Массив В:
6 11 15 57 88

Шаг 17:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4- 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
>3
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9
Массив В:
6 11 15 24 57 88

Шаг 18:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4- 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
>3
7- 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9- 9 9 9
>6 >8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9

Массив В:
6 11 15 24 41 57 88

Шаг 19:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4- 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6
>3
7- 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8- 9- 9 9 9
>6 >7 >8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9

Массив В:
6 11 15 24 41 56 57 88

Шаг 20:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3 4- 5 5 5 5 5 5 5 5 5 5 6- 6 6 6 6 6
>3 >5
7- 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8- 9- 9 9 9
>6 >7 >8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9

Массив В:
6 11 15 24 35 41 56 57 88

Шаг 21:
Массив А:
25 35 56 41 24 88 6 11 57 15

Массив С:
0 0 0 0 0 1- 1 1 1 1 2- 2 2 2 3- 3 3 3 3 3
>0 >1 >2
3 3 3- 4- 5 5 5 5 5 5 5 5 5 5 6- 6 6 6 6 6
>2 >3 >5
7- 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8- 9- 9 9 9
>6 >7 >8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 10-
>9

Массив В:
6 11 15 24 25 35 41 56 57 88

Работа алгоритма сортировки слиянием:


Этапы решения задачи сортировки:
1) Сортируемый массив разбивается на две части меньшего размера,пока размер массива не
достигнет единицы;
2) Каждая из получившихся частей сортируется отдельно;
3) Два упорядоченных массива меньшего размера соединяются в один.

Шаг 0:
Массив А:
25 35 56 41 24 88 6 11 57 15

Шаг 1:
25 35 56 41 24 88 6 11 57 15

Шаг 2:

25 35 56 41 24 88 6 11 57 15

Шаг 3:

25 35 56 41 24 88 6 11 57 15

Шаг 4:

25 35 56 41 24 6 88 11 57 15

Шаг 5:

25 35 56 24 41 6 88 11 15 57

Шаг 6:

25 35 24 41 56 6 88 11 15 57
Шаг 7:

24 25 35 41 56 6 11 15 57 88

Шаг 8:

6 11 15 24 25 35 41 56 57 88

3. Провести временной анализ алгоритмов сортировки (проанализировав псевдокод


программ, то есть теоретически), и сравнить данные с практическими. Построить
графическую зависимость времени от размерности массива для каждого из алгоритмов
на массиве от n случайных элементов, не менее 3х раз с размерностями больше, чем на
предыдущем шагу.

Время работы сортировки вставкой T(n) = T(n) = Ο(n 2)


Время работы сортировки подсчетом T(n) = Ο(n)
Время работы сортировки слиянием T(n) = Ο(n∗log n)
График зависимости времени выполнения алгоритма от размерности массива

1000 5000 10000 20000 30000

Merge sort 0,005 0,015 0,03 0,026 0,035


Counting 0,0008 0,0012 0,002 0,0025 0,005
sort
InsertSort 0,02 0,020 0,027 0,1 0,209
Вывод:
В ходе лабораторной работы были изучены различные алгоритмы, также был проведен
сравнительный анализ время их выполнения. Детально рассмотрены три вида сортировки
вставками,слиянием и подсчетом. Идея алгоритмов показана на примере, благодаря им
получилось лучше разобраться в данных сортировках и наглядно заметить какие сортировки
работают быстрее.

Вам также может понравиться