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

31

ЛАБОРАТОРНАЯ РАБОТА № 7

СОСТАВЛЕНИЕ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ СОРТИРОВКИ.

Цель работы: Освоение методов и получение навыков в составлении программ, производящих упорядочивание элементов массива.

Требования к выполнению работы: Для всех заданий вначале составить блок-схему алгоритма, а затем программу. Элементы массивов получать с помощью генератора случайных чисел. Вывести на печать массивы до, и после преобразования.

Теоретические положения

Рассмотрим массив целых или действительных чисел a1,…,an. Пусть требуется переставить элементы этого массива так, чтобы после перестановки они были упорядочены по убыванию или возрастанию. Эта задача называется задачей сортировки. Для решения этой задачи можно воспользоваться следующими алгоритмами.

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

Найти элемент массива, имеющий наименьшее значение, переставить его с первым элементом, затем проделать то же самое, начав со второго элемента и т.д.

Сортировка обменами.

Последовательным просмотром чисел аi,…,аn найти наименьшее такое, что аii+1. Поменять аi и аi+1 местами, возобновить просмотр с элемента аi+1 и т. д.. Тем самым наибольшее число передвинется на последнее место. Следующие просмотры начинать опять сначала, уменьшая на единицу количество просматриваемых элементов. Массив будет упорядочен после просмотра, в котором участвовали только первый и второй элементы.

Сортировка простыми вставками.

Просматривать последовательность а1,…,аn и каждый новый элемент аi вставлять на свое место в уже упорядоченную совокупность а1,…,аi-1. Это место определяется последовательным сравнением аi с упорядоченными элементами а1,…,аi-1.

Сортировка бинарными вставками.

Алгоритм упорядочения простыми вставками можно изменить следующим образом. Место, на которое надо вставить аi в уже упорядоченную совокупность а1,…,аi-1 определяется алгоритмом деления отрезка пополам. Новый алгоритм сортировки называется алгоритмом сортировки бинарными вставками (слова “бинарная вставка” следует понимать как “вставка делением пополам”).

Алгоритм фон Неймана.

Вначале весь массив рассматривается как совокупность упорядоченных групп по одному элементу в каждом. Слиянием соседних групп получаем упорядоченные группы, каждая из которых содержит два элемента (кроме, может быть последней группы, которой не нашлось парной). Далее упорядоченные группы укрупняются тем же способом и т. д. Здесь приходится оперировать не только с массивом а1,…,аn, но и вспомогательным массивом b1,…,bn.

Варианты индивидуальных заданий.

1. В матрице размером 8х10 упорядочить строки по убыванию элементов первого столбца методом обмена.

2. В матрице размером 6х8 упорядочить элементы четных строк по возрастанию, а нечетных по убыванию методом обмена.

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

4. В матрице размером 8х10 упорядочить строки по убыванию сумм элементов строк методом обмена.

5. В матрице размером 8х8 упорядочить нечетные строки по возрастанию элементов методом бинарных вставок.

6. В матрице размером 8х10 упорядочить строки по убыванию элементов первого столбца методом выбора.

7. В матрице размером 6х8 упорядочить элементы четных строк по возрастанию, а нечетных по убыванию методом выбора.

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

9. В матрице размером 8х10 упорядочить строки по убыванию сумм элементов строк методом выбора.

10. В матрице размером 8х8 упорядочить строки по возрастанию элементов последнего столбца методом выбора.

11. В матрице размером 8х10 упорядочить строки по убыванию элементов первого столбца методом простых вставок.

12. В матрице размером 6х8 упорядочить элементы четных строк по возрастанию, а нечетных по убыванию методом простых вставок.

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

14. В матрице размером 8х10 упорядочить строки по убыванию сумм элементов строк методом простых вставок,

15. В матрице размером 8х10 упорядочить четные столбцы по возрастанию, а нечетные по убыванию методом обмена.

16. В матрице размером 10х10 упорядочить четные столбцы по возрастанию, а нечетные по убыванию методом выбора.

17. В матрице размером 8х8 упорядочить четные столбцы по возрастанию, а нечетные по убыванию методом простых вставок.

18. Задана последовательность чисел, имеющая равные между собой элементы. Упорядочить последовательность по убыванию методом обмена, исключив из нее равные между собой элементы.

19. Задана последовательность чисел, имеющая равные между собой элементы. Упорядочить последовательность по возрастанию методом выбора, исключив из нее равные между собой элементы.

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

21. Задана последовательность чисел длиной 40. Первые 20 чисел упорядочить по убыванию, а последние 20 - по возрастанию методом обмена.

22. Задана последовательность чисел длиной 50. Первые 25 чисел упорядочить по убыванию, а последние 25 - по возрастанию методом выбора.

23. Задана последовательность чисел длиной 46. Первые 23 чисел упорядочить по убыванию, а последние 23 - по возрастанию методом простых вставок.

24. В матрице размером 10х10 упорядочить строки по не убыванию значений наименьших элементов строк методом выбора.

25. В матрице размером 8х8 упорядочить строки по возрастанию элементов последнего столбца методом простых вставок.

Соседние файлы в папке Лабы по программированию