Меню
Разработки
Разработки  /  Информатика  /  Уроки  /  Прочее  /  Лабораторная работа «Алгоритмы сортировки элементов в массиве»

Лабораторная работа «Алгоритмы сортировки элементов в массиве»

Цель: научится использовать алгоритмы сортировки элементов в массиве в языке программирования Turbo Pascal.

Теоретическая часть.

Сортировка элементов в массиве представляет собой процесс упорядочения элементов в порядке возрастания или убывания их значений.

Существует большое количество алгоритмов сортировки, но все они базируются на трех основных:

  • сортировка обменом (метод «пузырька»);
  • сортировка выбором;
  • сортировка вставкой.

Задан массив Y из n целых чисел. Расположить элементы массива в порядке возрастания их значений.

Сортировка методом "пузырька"

Сортировка пузырьковым методом является наиболее известной. Ее популярность объясняется запоминающимся названием, которое происходит из-за подобия процессу движения пузырьков в резервуаре с водой, когда каждый пузырек находит свой собственный уровень, и простотой алгоритма.

Сортировка методом "пузырька" использует метод обменной сортировки и основана на выполнении в цикле операций сравнения и при необходимости обмена соседних элементов. Рассмотрим алгоритм пузырьковой сортировки более подробно.

Сравним первый элемент массива со вторым, если первый окажется больше второго, то поменяем их местами. Те же действия выполним для второго и третьего, третьего и четвертого, i-го и (i+1)-го, (n-1)-го и n-го элементов. В результате этих действий самый большой элемент станет на последнее n-е место. Теперь повторим данный алгоритм сначала, но последний n-й элемент, рассматривать не будем, так как он уже занял свое место. После проведения данной операции самый большой элемент оставшегося массива станет на (n-1)-е место. Так повторяем до тех пор, пока не упорядочим весь массив.

11.06.2019

Содержимое разработки

Лабораторная работа №7

Тема: «Алгоритмы сортировки элементов в массиве»

Цель: научится использовать алгоритмы сортировки элементов в массиве в языке программирования Turbo Pascal.


Теоретическая часть.

Сортировка элементов в массиве представляет собой процесс упорядочения элементов в порядке возрастания или убывания их значений.

Существует большое количество алгоритмов сортировки, но все они базируются на трех основных:

  • сортировка обменом (метод «пузырька»);

  • сортировка выбором;

  • сортировка вставкой.


Задан массив Y из n целых чисел. Расположить элементы массива в порядке возрастания их значений.


Сортировка методом "пузырька"

Сортировка пузырьковым методом является наиболее известной. Ее популярность объясняется запоминающимся названием, которое происходит из-за подобия процессу движения пузырьков в резервуаре с водой, когда каждый пузырек находит свой собственный уровень, и простотой алгоритма.

Сортировка методом "пузырька" использует метод обменной сортировки и основана на выполнении в цикле операций сравнения и при необходимости обмена соседних элементов. Рассмотрим алгоритм пузырьковой сортировки более подробно.

Сравним первый элемент массива со вторым, если первый окажется больше второго, то поменяем их местами. Те же действия выполним для второго и третьего, третьего и четвертого, i-го и (i+1)-го, (n-1)-го и n-го элементов. В результате этих действий самый большой элемент станет на последнее n-е место. Теперь повторим данный алгоритм сначала, но последний n-й элемент, рассматривать не будем, так как он уже занял свое место. После проведения данной операции самый большой элемент оставшегося массива станет на (n-1)-е место. Так повторяем до тех пор, пока не упорядочим весь массив.

Пример работы алгоритма.

Возьмём массив с числами «5 1 4 2 8» и отсортируем значения по возрастанию, используя сортировку пузырьком. Выделены те элементы, которые сравниваются на данном этапе.

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

(5 1 4 2 8) (1 5 4 2 8), Здесь алгоритм сравнивает два первых элемента и меняет их местами.

(1 5 4 2 8) (1 4 5 2 8), Меняет местами, так как 5 4

(1 4 5 2 8) (1 4 2 5 8), Меняет местами, так как 5 2

(1 4 2 5 8) (1 4 2 5 8), Теперь, ввиду того, что элементы стоят на своих местах (8 5), алгоритм не меняет их местами.

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

(1 4 2 5 8) (1 4 2 5 8)

(1 4 2 5 8) (1 2 4 5 8), Меняет местами, так как 4 2

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

Теперь массив полностью отсортирован, но алгоритм не знает так ли это. Поэтому ему необходимо сделать полный проход и определить, что перестановок элементов не было.

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

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

Теперь массив отсортирован и алгоритм может быть завершён.


Нетрудно заметить, что для преобразования массива, состоящего из n элементов, необходимо просмотреть его n-1 раз, каждый раз уменьшая диапазон просмотра на один элемент.

Блок-схема описанного алгоритма приведена на рисунке 1. Обратите внимание на то, что для перестановки элементов (блок 4) используется буферная переменная b, в которой временно хранится значение элемента, подлежащего замене.

Совет. Для перестановки элементов в массиве по убыванию их значений необходимо при сравнении элементов массива заменить знак на .



Рисунок 1. Сортировка массива пузырьковым методом


Сортировка выбором

Алгоритм сортировки выбором приведен в виде блок-схемы на рисунке 2. Найдем в массиве самый большой элемент (блоки 3-7) и поменяем его местами с последним элементом (блок 8). Повторим алгоритм поиска максимального элемента, уменьшив количество просматриваемых элементов на единицу (блок 9), и поменяем его местами с предпоследним элементом (блоки 3-7). Описанную выше операцию поиска проводим до полного упорядочивания элементов в массиве. Так как в блоке 9 происходит изменение переменной n, то в начале алгоритма ее значение необходимо сохранить (блок 1).

Рисунок 2. Сортировка массива выбором наибольшего элемента


Совет. Для упорядочивания массива по убыванию необходимо перемещать минимальный элемент.


Сортировка вставкой

Сортировка вставкой заключается в том, что сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.

Составим блок-схему алгоритма (рисунок 3).

Организуем цикл для просмотра всех элементов массива, начиная со второго (блок 4). Сохраним значение текущего i-го элемента во вспомогательной переменной X, так как оно может быть потеряно при сдвиге элементов (блок 5) и присвоим переменной j значение индекса предыдущего (i-1)-го элемента массива (блок 6). Далее движемся по массиву влево в поисках элемента меньшего, чем текущий и пока он не найден сдвигаем элементы вправо на одну позицию. Для этого организуем цикл (блок 7), который прекратиться, как только будет найден элемент меньше текущего. Если такого элемента в массиве не найдется и переменная j станет равной нулю, то это будет означать, что достигнута левая граница массива, и текущий элемент необходимо установить в первую позицию. Смещение элементов массива вправо на одну позицию выполняется в блоке 8, а изменение счетчика j в блоке 9. Блок 10 выполняет вставку текущего элемента в соответствующую позицию.



Рисунок 3. Сортировка массива вставкой


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


Задание 1. В коде программы допущены ошибки. Необходимо исправить их, чтобы массив из десяти целых чисел был отсортирован по возрастанию.

Ошибка 1: оператор для представления массива в программе.

Ошибка 2: целый тип переменных.

Ошибка 3: укажите переменную, до которой переменная i меняет своё значение.

Ошибка 4: имя массива.

Ошибка 5: знак неравенства (при сравнении чисел по возрастанию).

Ошибка 6: укажите, с какого числа меняет своё значение переменная i.

Ошибка 7: оператор вывода на экран без перевода курсора на новую строку.





Задание 2. В готовой программе измените текст так, чтобы отсортировать массив из восьми действительных чисел по убыванию.


Задание 3. Выполните задание своего варианта.

Вариант 1

Вариант 2

В готовой программе измените текст так, чтобы можно было отсортировать по возрастанию первые три элемента массива, состоящего из семи целых чисел.

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



Задание 4. Оформите отчет по образцу и ответьте на контрольные вопросы (ответы запишите в отчет).

  1. Что такое массив?

  2. Виды массивов.

  3. Перечислите методы сортировок массивов.


Лабораторная работа №7

Тема: «Алгоритмы сортировки элементов в массиве»

Цель: научится использовать алгоритмы сортировки элементов в массиве в языке программирования Turbo Pascal.


Вариант №_____

Задание 1. В программе были исправлены семь ошибок.


Правильные ответы

1.


2.


3.


4.


5.


6.


7.



Задание 2.


Задание 3.

Задание 4.

Код программы



Ответы на вопросы



























Вывод:


6


-75%
Курсы повышения квалификации

Организация и сопровождение олимпиадной деятельности учащихся

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Лабораторная работа «Алгоритмы сортировки элементов в массиве» (378 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт