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

2. Постановка задачи

В данной работе необходимо разработать программу, реализующую следующие задачи:

  • Формирование одномерного динамического массива Mass c количеством элементов Kol, задаваемым пользователем, случайным образом.

  • Сортировка массива Mass по возрастанию при помощи трех алгоритмов сортировки:

- Методом простого выбора.

- Методом простых вставок.

- Методом подсчета сравнений.

  • Учет времени работы алгоритмов сортировки.

  • Выведение данных о скорости работы алгоритмов на экран в виде гистограммы.

  • Сохранение отсортированного массива в файл.

При написании программ для реализации сортировок массивов был использован язык программирования С++. Это один из широко используемых языков программирования, который можно использовать для написания программ, работающих в операционной среде Windows. Среда Borland C++ Builder 6- это сложный механизм, обеспечивающий высокоэффективную работу программиста.

3. Выбор структур данных для решения поставленной задачи.

Таблица 1

Наименование

Обозначение

Тип данных

Массив

Mass

Int

Переменная

Kol,i

long

Переменная

SlSortTime

Int

Переменная

ShellSortTime

Int

Переменная

QSortTime

Int

Файл

f

FILE

Массив

Mass1

Int

Массив

Mass2

Int

Массив

Mass3

Int

Переменная

vremya

Int

Переменная

start

Int

Переменная

end

Int

Переменная

i,j,k

Int

Переменная

tmp

Int

Переменная

max, n

Int

Переменная

x0, y0,w,h

Int

Переменная

del

Float

Указатель

*Mass1

Int

Указатель

*Mass2

Int

Указатель

*Mass3

Int

4. Логическое проектирование

    1. Метод простого выбора

При сортировке массиваметодом выбора применяется базовый алгоритм поиска максимального (минимального)  элемента и его номера.

Алгоритм сортировки массива методом выбора:

  1. Для исходного массива выбрать максимальный элемент.

  2. Поменять его местами с последним элементом (после этого самый большой элемент будет стоять на своем месте).

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

Для упорядочения массива потребуется (n-1) просмотров массива. В процессе сортировки будет увеличиваться отсортированная часть массива, а неотсортированная, соответственно, уменьшаться.

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

    1. Метод простых вставок

Сортировка вставками — достаточно простой алгоритм. Как в и любом другом алгоритме сортировки, с увеличением размера сортируемого массива увеличивается и время сортировки. Основным преимуществом алгоритма сортировки вставками является возможность сортировать массив по мере его получения. То есть имея часть массива, можно начинать его сортировать. В параллельном программировании такая особенность играет не маловажную роль.

Сортируемый массив можно разделить на две части — отсортированная часть и неотсортированная. В начале сортировки первый элемент массива считается отсортированным, все остальные — не отсортированные. Начиная со второго элемента массива и заканчивая последним, алгоритм вставляет неотсортированный элемент массива в нужную позицию в отсортированной части массива. Таким образом, за один шаг сортировки отсортированная часть массива увеличивается на один элемент, а неотсортированная часть массива уменьшается на один элемент.