Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA_DZ2_VM.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
78.17 Кб
Скачать

2 Описание блок-схемы алгоритма

В данной программе используются:

  1. Тип mas – это тип переменой, представляющий собой массив элементов типа integer с индексацией начиная с 1до 100.

  2. Глобальные переменные:

  • n – переменная типа byte, количество элементов массива;

  • k – переменная типа byte, счетчик;

  • C, M – переменная типа integer, для подсчета количества сравнений и пересылок элементов массива соответственно.

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

  2. Локальные переменные в процедуре PuzSort:

  • i,j – переменные типа byte, счетчики;

  • buf – переменная типа integer, используемая как буфер обмена.

Процедура PuzSort содержит два цикла, один из которых(внешний) выполняется начиная с 2 до количества элементов массива, реализует повторный проход по телу цикла, а следовательно и по массиву до такого элемента чтобы программа не выполняла лишних сравнений элементов. Внутренний цикл реализует проход по элементам массива, начиная с последнего заканчивая индексом работы внешнего цикла. Тело цикла содержит условный оператор: если слева стоящий элемент больше соседнего справа стоящего элемента, то выполнять:

  • пересчет счетчика количества сравнений элементов;

  • менять местами взятые на рассмотрение элементы;

  • пересчет счетчика количества пересылок элементов на 3.

Главная программа реализует:

  • ввод количества элементов массива в режиме диалога;

  • формирование элементов массива с помощью функции Random;

  • обращение к процедуре PuzSort;

  • вывода отсортированного массива;

  • вывод значений количества перестановок и пересылок элементов массива;

3 Практическая часть

Пример работы этого алгоритма на массиве с числами «4 2 6 3 5 1» сортировки по возрастанию приведен ниже (выделены те элементы, которые сравниваются на данном этапе).

Первый проход:

(4 2 6 3 5 1) (4 2 6 3 1 5), меняет местами, так как 5 > 1, С=1, М=3;

(4 2 6 3 1 5) (4 2 6 1 3 5), меняет местами, так как 3 > 1, С=2, М=6;

(4 2 6 1 3 5) (4 2 1 6 3 5), меняет местами, так как 6 > 1, С=3, М=9;

(4 2 1 6 3 5) (4 1 2 6 3 5), меняет местами, так как 2 > 1, С=4, М=12;

(4 1 2 6 3 5) (1 4 2 6 3 5), меняет местами, так как 4 > 1, С=5, М=15.

Второй проход:

(1 4 2 6 3 5) (1 4 2 6 3 5), не меняет местами, так как 3 < 5, С=6, М=15;

(1 4 2 6 3 5) (1 4 2 3 6 5), меняет местами, так как 6 > 3, С=7, М=18;

(1 4 2 3 6 5) (1 4 2 3 6 5), не меняет местами, так как 2 < 3, С=8, М=18;

(1 4 2 3 6 5) (1 2 4 3 6 5), меняет местами, так как 4 > 2, С=9, М=21.

Третий проход:

(1 2 4 3 6 5) (1 2 4 3 5 6), меняет местами, так как 6 > 5, С=10, М=24;

(1 2 4 3 5 6) (1 2 4 3 5 6), не меняет местами, так как 3 < 5, С=11, М=24;

(1 2 4 3 5 6) (1 2 3 4 5 6), меняет местами, так как 4 > 3, С=12, М=27.

Четвертый проход:

(1 2 3 4 5 6) (1 2 3 4 5 6), не меняет местами, так как 5 < 6, С=13, М=27;

(1 2 3 4 5 6) (1 2 3 4 5 6), не меняет местами, так как 4 < 5, С=14, М=27.

Пятый проход:

(1 2 3 4 5 6) (1 2 3 4 5 6), не меняет местами, так как 5 < 6, С=15, М=27.

Данный массив отсортирован.

Проанализировав аналогичный ход работы программы на 10, 20 и 100 элементах можно сказать что данный алгоритм сортировки удобен и рационален для его использования на малом количестве элементов в массиве. Что показано на диаграмме 3.1., диаграмме 3.2. а также диаграмме 3.3.

Диаграмма 3.1 – анализ работы алгоритма сортировки методом прямого обмена на неупорядоченном массиве.

где С – количество сравнений элементов массива;

М – количество пересылок элементов массива.

Диаграмма 3.2 – анализ работы алгоритма сортировки методом прямого обмена на упорядоченном массиве.

где С – количество сравнений элементов массива;

М – количество пересылок элементов массива.

Диаграмма 3.3 – анализ работы алгоритма сортировки методом прямого обмена на обратно упорядоченном массиве.

где С – количество сравнений элементов массива;

М – количество пересылок элементов массива.

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

ВЫВОД

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]